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 [email protected]:/usr/local/
    scp -r /usr/local/hadoop [email protected]:/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現在可以正常上傳和下載,如果知道怎麼解決的,可以跟我留言哈。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章