centos 7安裝hadoop-3.0.0


  最近在學習大數據,需要安裝hadoop,自己弄了好久,最后終於弄好了。網上也有很多文章關於安裝hadoop的,但總會遇到一些問題,所以把整個過程記錄下來,有什么不對的地方大家可以留言更正。

  一、ssh免密登錄

    1、測試是否能免密登錄

      # ssh localhost

      The authenticity of host 'localhost (::1)' can't be established.

    2、設置免密登錄

      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)、測試:(沒有報錯,並沒有提示輸入目標服務器用戶密碼,用戶切換到目標服務器用戶名則成功

        # ssh 目標服務器IP

        

        備注:配置好了hadoop1到hadoop2免密登錄,同時需要配置hadoop2到hadoop1的免密登錄,在hadoop2上操作,過程同上

  二、安裝JDK

      hadoop-3.0.0需要jdk1.8,此處省略安裝過程,網上很多,過程也比較簡單

  三、安裝hadoop

    1、下載hadoop:

      http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.0.0/

    2、解壓安裝:

       1)、復制 hadoop-3.0.0.tar.gz 到/usr/hadoop目錄下, 然后

          #tar -xzvf hadoop-3.0.0.tar.gz

        解壓,解壓后目錄為:/usr/hadoop/hadoop-3.0.0,Hadoop 解壓后即可使用。輸入如下命令來檢查 Hadoop 是否可用,成功則會顯示 Hadoop 版本信息:

        #cd /usr/hadoop/hadoop-3.0.0 
        #./bin/hadoop version

       2),在/usr/hadoop/目錄下,建立tmp:

        #mkdir /usr/hadoop/tmp

       3)、設置環境變量:

        #vi /etc/profile
        # set hadoop path
        export HADOOP_HOME=/usr/hadoop/hadoop-3.0.0
        export PATH=$PATH:$HADOOP_HOME/bin

      4)、使環境變量生效,終端中運行如下命令:

        #source /etc/profile

      5)、設置hadoop:     

        一共需要配置主要的6個文件:

          hadoop-3.0.0/etc/hadoop/hadoop-env.sh 

          hadoop-3.0.0/etc/hadoop/yarn-env.sh 

          hadoop-3.0.0/etc/hadoop/core-site.xml 

          hadoop-3.0.0/etc/hadoop/hdfs-site.xml 

          hadoop-3.0.0/etc/hadoop/mapred-site.xml 

          hadoop-3.0.0/etc/hadoop/yarn-site.xml

        ⑴、配置hadoop-env.sh:

          # The java implementation to use.  
          #export JAVA_HOME=${JAVA_HOME}  
          export JAVA_HOME=/usr/java/jdk1.8.0_152 //根據自己jdk安裝目錄配置

        ⑵、配置yarn-env.sh:

          #The java implementation to usr  
          export JAVA_HOME=/usr/java/jdk1.8.0_152 //根據自己jdk安裝目錄配置

        ⑶、配置core-site.xml:

          <!-- 指定HADOOP所使用的文件系統schema(URI),HDFS的老大(NameNode)的地址 -->
          <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>

        ⑷、配置hdfs-site.xml:

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

        ⑸、配置mapred-site.xml:

          <!-- 指定mr運行在yarn上 -->
          <configuration>             <property>         <name>mapreduce.framework.name</name>         <value>yarn</value>             </property>           </configuration>

        ⑹、配置yarn-site.xml:

          <!-- 指定YARN的老大(ResourceManager)的地址 -->
          <configuration>             <property>           <name>yarn.nodemanager.aux-services</name>           <value>mapreduce_shuffle</value>             </property>  

             <!-- reducer獲取數據的方式 -->
             <property>
              <name>yarn.nodemanager.aux-services</name>
              <value>mapreduce_shuffle</value>
             </property>

           </configuration>

          備注:以上配置都是以最簡配置,還有很多配置可以自行添加

       6)、將/usr/hadoop復制到其他服務器:

          scp -r /usr/hadoop root@192.168.1.11:/usr/hadoop

        7)、格式化namenode:  

          #CD /usr/hadoop/hadoop-3.0.0
          # ./bin/hdfs namenode -format

          成功的話,會看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若為 “Exitting with status 1” 則是出錯          

          備注:只需格式化namenode,datanode不需要格式化(若格式化了,可將/usr/hadoop/tmp目錄下文件都刪除),所以先將安裝文件夾復制到其他服務器,再格式化

    四、測試:

      1、啟動HDFS:

      #CD /usr/hadoop/hadoop-3.0.0
      # 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.

 

      解決方案

      (缺少用戶定義而造成的)因此編輯啟動和關閉

      $ vim sbin/start-dfs.sh
      $ vim sbin/stop-dfs.sh

      頂部空白處添加

      HDFS_DATANODE_USER=root  
      HADOOP_SECURE_DN_USER=hdfs  
      HDFS_NAMENODE_USER=root  
      HDFS_SECONDARYNAMENODE_USER=root

      2)啟動ResourceManager和NodeManager:

      #CD /usr/hadoop/hadoop-3.0.0
      #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.

      解決方案

      (也是由於缺少用戶定義)

      是因為缺少用戶定義造成的,所以分別編輯開始和關閉腳本 

      $ vim sbin/start-yarn.sh 
      $ vim sbin/stop-yarn.sh 

      頂部空白添加

      YARN_RESOURCEMANAGER_USER=root  
      HADOOP_SECURE_DN_USER=yarn  
      YARN_NODEMANAGER_USER=root

      3)、啟動驗證:

        執行jps命令,出現下圖基本完成

        

      備注:也可以使用下面命令同時啟動HDFS和ResourceManager、NodeManager:

      #CD /usr/hadoop/hadoop-3.0.0
      #sbin/start-all.sh

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM