天天看點

CentOS7-Hadoop安裝./bin/hdfs namenode -format

環境:CentOS7 64位 3台

centos7-1 192.168.190.130 master

centos7-2 192.168.190.129 slave1

centos7-3 192.168.190.131 slave2

hadoop 下載下傳位址:http://mirrors.hust.edu.cn/apache/hadoop/common/ 選則3.1.0版本

1.安裝三台虛拟機(centos7),安裝jdk,實作節點間免密碼登陸。

#安裝虛拟機不做說明,可檢視相關文章資料。
 #安裝jdk,配置JAVA_HOME環境變量,不做說明,自行百度。
 #三個虛拟機都需要修改hostname,修改/etc/hosts
 #vim /etc/hostname              //分别寫成master,slave1,slave2,修改後需要重新啟動reboot
 #vim /etc/hosts
 #192.168.190.130 master
 #192.168.190.129 slave1
 #192.168.190.131 slave2
 #給三台機器設定面密碼ssh登陸
 #ssh-keygen  -t   rsa             //生成密鑰,三台機器都需要執行相同的指令           
CentOS7-Hadoop安裝./bin/hdfs namenode -format

#authorized_keys

#touch /root/.ssh/authorized_keys //master節點上

#cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

#把slave1、slave2上的id_rsa.pub都拷貝到master節點上,直接追加到authorized_keys

#scp -r /root/.ssh/id_rsa.pub root@masterIP:/root/.ssh/slave1.id_rsa.pub //slave1

#scp -r /root/.ssh/id_rsa.pub root@masterIP:/root/.ssh/slave2.id_rsa.pub //slave2

#cat /root/.ssh/slave1.id_rsa.pub >> /root/.ssh/authorized_keys //master

#cat /root/.ssh/slave2.id_rsa.pub >> /root/.ssh/authorized_keys //master

#authorized_keys内容如下:

CentOS7-Hadoop安裝./bin/hdfs namenode -format

#通過scp指令将master的authorized_keys拷貝到slave1\slave2的/root/.ssh/下

#scp -r /root/.ssh/authorized_keys root@Slave1IP:/root/.ssh/

#scp -r /root/.ssh/authorized_keys root@Slave2IP:/root/.ssh/

#ssh 目标域名                 //master、slave1、slave2,第一次需要确認一下輸入yes,後面就不用了
 到此免密碼登陸已經完成。               

2.載hadoop,解壓tar.gz檔案

#cd /usr
        #mkdir hadoop
        #cd hadoop
        #wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.1.0.tar.gz
        #tar  -zxvf hadoop-3.1.0.tar.gz

         解壓後,出現hadoop-3.1.0工作目錄,既可以使用。
         #cd /usr/hadoop/hadoop-3.1.0
         #mkdir tmp
         #./bin/hadoop -version   //檢驗是否可以使用           

2.設定環境變量,全局(/etc/profile)

#vim /etc/profile
    設定HADOOP_HOME,并加到PATH路徑下
    HADOOP_HOME=/usr/hadoop/hadoop-3.1.0
    PATH=$PATH:$HADOOP_HOME/bin
    #source /etc/profile           

3.配置hadoop

#hadoop主要的檔案,路徑hadoop-3.1.0/etc/hadoop/下
    hadoop-env.sh             //
    core-site.xml                // 
    hdfs-site.xml                //
    mapred-site.xml          //
    yarn-site.xml               //
    workers                      // 隻要配置namenode節點,用于發現slave節點

    a.hadoop-env.sh配置
    export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.171-0.b13.el7_3.x86_64

    b.core-site.xml配置
    <configuration>
        <property>
          <name>fs.default.name</name>  
                <value>hdfs://master:9000</value>
          <description>HDFS的URI,檔案系統://namenode辨別:端口号</description>   
         </property>     
         <property>      
             <name>hadoop.tmp.dir</name>
                 <value>/usr/hadoop/tmp</value> 
                 <description>namenode上本地的hadoop臨時檔案夾</description> 
         </property> 
    </configuration>

   c.配置hdfs-site.xml
     <configuration>
         <property>
             <name>dfs.replication</name> 
             <value>1</value>  
             <description>副本個數,配置預設是3,應小于datanode機器數量</description>  
        </property>  
   </configuration>

     d.配置mapred-site.xml
    <configuration>  
        <property>  
            <name>mapreduce.framework.name</nam
            <value>yarn</value> 
        </property>  
    </configuration>

    e.配置yarn-site.xml
     <configuration>  
             <property>  
                         <name>yarn.nodemanager.aux-services</name>  
                         <value>mapreduce_shuffle</value>  
             </property> 
             <property>
                         <name>yarn.nodemanager.aux-services</name>
                         <value>mapreduce_shuffle</value>
            </property>
    </configuration>

    f.配置workers(slaves)檔案,這裡特别注意一下版本不同可能沒有slaves檔案,删除localhost,一行一個,填寫ip位址也可以(隻在namenode節點配置)
    slave1   
    slave2           

4.将/usr/hadoop複制到其他伺服器:

#scp -r /usr/hadoop root@目标ip:/usr/hadoop

5.格式化namenode:

#CD /usr/hadoop/hadoop-3.1.0

./bin/hdfs namenode -format

成功的話,會看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若為 “Exitting with status 1” 則是出錯;備注:隻需格式化namenode,datanode不需要格式化(若格式化了,可将/usr/hadoop/tmp目錄下檔案都删除),是以先将安裝檔案夾複制到其他伺服器,再格式化           

6.啟動hadoop

#cd /usr/hadoop/hadoop-3.1.0

#sbin/start-all.sh

8.檢查啟動結果

#jps

CentOS7-Hadoop安裝./bin/hdfs namenode -format
總結:
a.通路http://192.168.190.130:9000時發現,端口拒絕通路
    關閉防護牆,依然沒有用,檢視端口占用情況(netstat -npl | grep 9000)發現沒有被占用,後來看到hadoop namenode -format消息發現定位到了127.0.0.1,無法遠端通路,通過修改hosts檔案可以解決這個問題:
    #cd /etc/hosts               //三台虛拟機都要修改
    #vim /etc/hosts             //将下面的寫在檔案最前面
    #192.168.190.130 master
    #192.168.190.129 slave1
    #192.168.190.131 slave2
    重新格式化namenode節點:
    #cd /usr/hadoop/hadoop-3.1.0/bin
    #./hadoop namenode -format

b.發現經過a後,可以通路9000端口,但是如下圖:           
ERROR: Attempting to launch hdfs namenode as root           
d.#sbin/start-yarn.sh執行腳本報錯,如下:
Starting resourcemanager           
本文是檢視了網絡部落格與官方文檔,結合自己操作所記錄的所有過程,如果有不對或者錯誤,請留言指正,如有侵權,請聯系本人删除。
參考部落格:https://www.linuxidc.com/Linux/2018-02/150812.htm