1. 程式人生 > >CentOS7-Hadoop安裝

CentOS7-Hadoop安裝

rep mage 官方 .cn name dir ucc proc 聯系

環境:CentOS7 64位 2臺
centos7-1 192.168.190.130 master
centos7-2 192.168.190.129 slave1

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

在安裝之前需要先實現節點之間的免密碼登陸
1)去掉 /etc/ssh/sshd_config中的兩行註釋,如沒有則添加,所有服務器都要設置的:
 #RSAAuthentication yes
 #PubkeyAuthentication yes
2)、生成秘鑰:# ssh-keygen -t rsa
備註:輸入命令後回車4次

3)、復制到公共密鑰中:

cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys

4)、將秘鑰復制到目標服務器:

ssh-copy-id 目標服務器IP

5)、測試:(沒有報錯,並沒有提示輸入目標服務器用戶密碼,用戶切換到目標服務器用戶名則成功)
6)# ssh 目標服務器IP

備註:配置好了master到slave1免密登錄,同時需要配置slave1到master的免密登錄,在slave1上操作,過程同上,同時記得在/etc/hosts中加上master、slave1的域名解析

1.下載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             //
    yarn-env.sh                  //
    core-site.xml                // 
    hdfs-site.xml                //
    mapred-site.xml          //
    yarn-site.xml               //

    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.yarn-env.sh配置
    export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.171-0.b13.el7_3.x86_64

    c.core-site.xml配置
    <configuration>
        <property>
          <name>fs.default.name</name>  
                <value>hdfs://localhost: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>

   d.配置hdfs-site.xml
     <configuration>
         <property>
             <name>dfs.replication</name> 
             <value>1</value>  
             <description>副本個數,配置默認是3,應小於datanode機器數量</description>  
        </property>  
   </configuration>

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

    f.配置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>

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-dfs.sh

7.啟動ResourceManager和NodeManager
#cd /usr/hadoop/hadoop-3.1.0
#sbin/start-yarn.sh

8.檢查啟動結果
#jps
技術分享圖片

總結:
a.免密碼登陸,可以把所有口令一起追加進入一個文件具體操作可看這個文章:

b.啟動時可以直接把所有都啟動,命令如下:
    #cd /usr/hadoop/hadoop-3.1.0
    #sbin/start-all.sh
c.#sbin/start-dfs.sh執行腳本報錯,如下:

ERROR: Attempting to launch hdfs namenode as root

ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting launch.
Starting datanodes
ERROR: Attempting to launch hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting launch.
Starting secondary namenodes [localhost.localdomain]
ERROR: Attempting to launch hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting launch.
解決方法:
在start-dfs.sh 、stop-dfs.sh加如下配置
HDFS_DATANODE_USER=root
 HADOOP_SECURE_DN_USER=hdfs
 HDFS_NAMENODE_USER=root
 HDFS_SECONDARYNAMENODE_USER=root
添加後可能還是會報如下警告:
WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER.
解決辦法:替換上述的解決方法
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

d.#sbin/start-yarn.sh執行腳本報錯,如下:
Starting resourcemanager

ERROR: Attempting to launch yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting launch.
解決辦法:start-yarn.sh、stop-yarn.sh添加如下配置
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

本文是查看了網絡博客與官方文檔,結合自己操作所記錄的所有過程,如果有不對或者錯誤,請留言指正,如有侵權,請聯系本人刪除。
參考博客:https://www.linuxidc.com/Linux/2018-02/150812.htm

CentOS7-Hadoop安裝