首页 > 代码库 > Hadoop系列之hdfs(分布式文件系统)安装配置

Hadoop系列之hdfs(分布式文件系统)安装配置

 Hadoop系列之hdfs(分布式文件系统)安装配置
环境介绍:
     ip                        节点
192.168.3.10      hdfs-master
192.168.3.11      hdfs-slave1
192.168.3.12      hdfs-slave2
1.在所有机器添加hosts
192.168.3.10      hdfs-master
192.168.3.11      hdfs-slave1
192.168.3.12      hdfs-slave2
 #说明
 //主机名不能带有下划线及一些特殊符号,不然将会有很多错误。    
2.配置ssh无密码登录机器
  在192.168.3.10操作如下:
  /usr/bin/ssh-keygen -t rsa
  ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.3.10 #输入yes及输入192.168.3.10的root密码
  ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.3.11 #输入yes及输入192.168.3.11的root密码
  ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.3.12 #输入yes及输入192.168.3.12的root密码
  ssh 192.168.3.10  #测试进入192.168.3.10是否不需要输入密码进去,如果不需要则表示无密码登陆成功.
  ssh 192.168.3.11  #测试进入192.168.3.11是否不需要输入密码进去,如果不需要则表示无密码登陆成功.
  ssh 192.168.3.12 #测试进入192.168.3.12是否不需要输入密码进去,如果不需要则表示无密码登陆成功.
3.在所有机器安装jdk软件及配置jdk环境     
  cd /root/soft
  rpm -ihv jdk-7u51-linux-x64.rpm
  3.1打开/etc/profile文件增加下面内容
  export JAVA_HOME=/usr/java/default
  export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  export PATH=$PATH:$JAVA_HOME/bin
  3.2刷新环境变量
  source /etc/profile
  java -version  #查看是否安装成功
4.在所有机器安装hadoop软件
  4.1hadoop安装
      mv /root/soft/hadoop-2.4.0.tar.gz /usr/local/
      cd /usr/local/
      tar zxvf hadoop-2.4.0.tar.gz
      mv hadoop-2.4.0 hadoop
  4.2打开/etc/profile文件增加下面内容环境变量
      export HADOOP_HOME=/usr/local/hadoop
      export HADOOP_COMMON_HOME=$HADOOP_HOME
      export HADOOP_HDFS_HOME=$HADOOP_HOME
      export HADOOP_MAPRED_HOME=$HADOOP_HOME
      export HADOOP_YARN_HOME=$HADOOP_HOME
      export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
      export PATH=$PATH:$HADOOP_HOME/bin
      export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
      export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
  4.3刷新环境变量
      source /etc/profile
  4.4配置文件目录创建
      mkdir -p /data/hadoop/{tmp,name,data,var}
5.在192.168.3.10配置hadoop
  5.1配置hadoop-env.sh
       vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
       修改export JAVA_HOME=${JAVA_HOME} 为export JAVA_HOME=/usr/java/default
  5.2配置slaves文件
      vim /usr/local/hadoop/etc/hadoop/slaves
       #添加下面内容
       hdfs-slave1
       hdfs-slave2
  5.3配置core-site.xml文件
      vim /usr/local/hadoop/etc/hadoop/core-site.xml
      #添加下面内容
     <configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://hdfs-master:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
        <value>/data/hadoop/tmp</value>
        </property>
    </configuration>
     #说明
    //fs.default.name是NameNode的URI。hdfs://主机名:端口/
    //hadoop.tmp.dir:hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。
    //不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。
  5.4配置hdfs-site.xml文件
      vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
      #添加下面内容
      <configuration>
        <property>
                <name>dfs.name.dir</name>
                <value>/data/hadoop/name</value>
                <description> </description>
        </property>
        <property>
                <name>dfs.data.dir</name>
                <value>/data/hadoop/data</value>
                <description> </description>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
      </configuration>
      #说明
      //dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。
      //dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错.(我这里只有2个datanode所以修改为2)
  5.5配置mapred-site.xml文件
      cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
      vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
      #添加下面内容
      <configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>hdfs-master:9001</value>
        </property>
        <property>
                <name>mapred.local.dir</name>
                <value>/data/hadoop/var</value>
        </property>
      </configuration>
      #说明
       //mapred.job.tracker是JobTracker的主机(或者IP)和端口。主机:端口。其中/data/hadoop/var目录需要提前创建,并且注意用chown -R 命令来修改目录权限。
  5.6配置yarn-site.xml文件
      vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
      #添加下面内容
      <configuration>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
       </configuration>
  5.7同步hadoop配置文件到hdfs-slave1和hdfs-slave2
    scp -r /usr/local/hadoop root@192.168.3.11:/usr/local/
    scp -r /usr/local/hadoop root@192.168.3.12:/usr/local/    
6.格式化分布式文件系统
  #在192.168.3.10格式化hadoop
  hdfs namenode  -format
7.启动Hadoop集群
  #在192.168.3.10启动hadoop
   /usr/local/hadoop/sbin/start-all.sh     
8.查看Master和slave进程状态
  #在192.168.3.10查看Java进程情况:
  [root@hdfs-master hadoop]# jps
  8030 NameNode
  8213 SecondaryNameNode
  8615 Jps
  8356 ResourceManager
  #在其它几台DataNode从节点上,查看Java进程情况:
  [root@hdfs-slave1 hadoop]# jps
  2821 Jps
  2702 NodeManager
  2586 DataNode
  注:各节点上进程都在的话,说明集群部署成功。
9.简单验证hdfs
  #在192.168.3.10测试hdfs分布式存储:
  //建立目录
   hdfs dfs -mkdir /test
   hdfs dfs -mkdir /test/01
   //査看目录
  [root@hdfs-master sbin]# hdfs dfs -ls /
  drwxr-xr-x   - root supergroup          0 2014-09-12 16:49 /test
   //査看目录包括子目录
  [root@hdfs-master sbin]# hdfs dfs -ls -R /
  drwxr-xr-x   - root supergroup          0 2014-09-12 17:01 /test
  drwxr-xr-x   - root supergroup          0 2014-09-12 17:01 /test/01
  //添加文件
  hdfs dfs -put /root/soft/aa.txt /test
  [root@hdfs-master sbin]# hdfs dfs -ls -R /test
  drwxr-xr-x   - root supergroup          0 2014-09-12 17:01 /test/01
  -rw-r--r--   2 root supergroup          4 2014-09-12 17:07 /test/aa.txt
  //获取文件
  hdfs dfs -get /test/aa.txt /tmp/
  [root@hdfs-master sbin]#  ls /tmp/aa.txt
  /tmp/aa.txt
  //删除文件
  hdfs dfs -rm /test/aa.txt
  [root@hdfs-master sbin]# hdfs dfs -ls -R /test
  drwxr-xr-x   - root supergroup          0 2014-09-12 17:01 /test/01
  //删除目录
   hdfs dfs -rm -r /test/01
   [root@hdfs-master sbin]#  hdfs dfs -ls -R /
   drwxr-xr-x   - root supergroup          0 2014-09-12 17:13 /test
    //修改文件所有者
   hdfs dfs -chown -R root /test
   //修改权限
   hdfs dfs -chmod -R 700 /test
   //通过网页查看整个集群的状态
   http://192.168.3.10:50070
   //通过命令查看整个集群的状态
10.关闭hadoop集群
  #在192.168.3.10关闭hadoop
   /usr/local/hadoop/sbin/stop-all.sh


注:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 这个警告一直没有解决,不过hdfs现在可以正常上传和下载,如果知道怎么解决的,可以跟我留言哈。

本文出自 “成都@阿状” 博客,请务必保留此出处http://azhuang.blog.51cto.com/9176790/1551782

Hadoop系列之hdfs(分布式文件系统)安装配置