Hadoop分佈式集羣的搭建

此文已由做者朱笑笑受權網易雲社區發佈。
node

歡迎訪問網易雲社區,瞭解更多網易技術產品運營經驗。web



上一篇文章介紹瞭如何搭建Hadoop僞分佈式集羣,本篇將向你們介紹下Hadoop分佈式集羣的搭建。內容淺顯,但可以爲新手們提供一個參考,讓像我同樣的小白們對Hadoop的環境可以有必定的瞭解。vim

環境:網絡

系統環境:CentOS7.3.1611 64位框架

Java版本:OpenJDK 1.8.0ssh

使用兩個節點做爲集羣環境:一個做爲Master節點,另外一個做爲Slave節點分佈式

集羣搭建流程:oop

Hadoop集羣的安裝配置主要流程以下:測試

(1)選定一臺機器做爲Master;.net

(2)在Master節點上配置hadoop用戶、Java環境及安裝SSH server;

(3)在 Master 節點上安裝 Hadoop,完成配置;

(4)其他機器做爲Slave節點,同理,在 Slave 節點上配置 hadoop 用戶、Java環境、安裝 SSH Server;

(5)將 Master 節點上的Hadoop安裝目錄內容複製到其餘 Slave 節點上;

(6)在 Master 節點上開啓 Hadoop;

以上步驟中,配置hadoop用戶、Java環境,安裝SSH server,安裝Hadoop的步驟在《Hadoop單機/僞分佈式集羣搭建(新手向)》一文中作了比較詳細的介紹,你們能夠參照此文中的步驟來:http://ks.netease.com/blog?id=8333。

集羣全部的節點都須要位於同一個局域網,所以在完成上述步驟的前4步驟後,先進行如下的網絡配置,實現節點間的互連。

網絡配置

本文使用的是VMware虛擬機安裝的系統,因此只須要更改網絡鏈接方式爲橋接(Bridge)模式,便能實現節點互連。如圖:

配置完成後能夠在各個節點上查看節點的ip,Linux中查看節點IP地址的命令爲:ifconfig,以下圖所示,Master節點的ip爲10.240.193.67:

網絡配置完成後,即可進行hadoop分佈式集羣的配置了。 

爲了可以方便的區分Master和Slave,咱們能夠修改節點的主機名用以區分。在CentOS7中,咱們在Master節點上執行如下命令來修改主機名:

  • sudo vim /etc/hostname

 將主機名修改成Master:

同理,修改Slave節點的主機名爲Slave。

而後,在Master和Slave節點上都執行以下命令修改IP映射,添加全部節點的IP映射:

  • sudo vim /etc/hosts

        本文中使用的兩個節點的名稱與對應IP關係以下:

修改完成後須要重啓節點,使得以上配置生效。能夠在各個節點上ping其餘節點的主機名,若能ping通說明配置成功。

SSH無密碼登錄節點

         分佈式集羣搭建須要Master節點可以無密碼SSH登錄至各個Slave節點上。所以,咱們須要生成Master節點的公鑰,並將Master公鑰在Slave節點中加入受權。步驟以下:

      (1)首先生成Master節點的公鑰,執行以下命令:

  • cd ~/.ssh      --若無該目錄,先執行ssh localhost

  • rm ./id_rsa*       --若已生成過公鑰,則刪除原有的公鑰

  • ssh-keygen -t rsa      --一路回車

         (2)Master節點需能無密碼SSH登錄本機,在Master節點上執行命令:

  • cat ./id_rsa.pub >> ./authorized_keys

  • chmod 600 ./authorized_keys

    若不執行修改權限,會出現如下問題,仍沒法實現無密碼SSH登錄本機。

    完成後,執行ssh Master驗證是否能夠無密碼SSH登錄本機,首次登錄須要輸入yes,輸入exit便可退出登錄。

         (3)在Master節點將生成的公鑰傳輸至Slave節點,能夠執行如下命令:

  • scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/

   上述scp命令遠程將Master節點的公鑰拷貝至了Slave節點的/home/hadoop目錄下,執行過程當中會要求輸入Slave節點hadoop用戶的密碼,輸入完成後會顯示傳輸的進度:

       (4)在Slave節點上,將Master節點的ssh公鑰加入受權,執行命令:

  • ssh localhost        --執行該命令是爲了生成~/.ssh目錄,或者mkdir ~/.ssh建立

  • cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

  • chmod 600 ~/.ssh/authorized_keys

  (5)至此,已經完成 了Master節點無密碼SSH登錄到Slave節點的配置。在Master節點上輸入命令:ssh Slave 進行驗證,登錄成功以下圖:

配置hadoop分佈式環境

配置hadoop分佈式環境須要修改hadoop中的五個配置文件,分別爲:slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。具體的配置項及做用能夠參考官網的說明,這裏對正常啓動分佈式集羣所必須的配置項進行配置。

        一、slaves

將做爲DataNode節點的主機名寫入文件。該文件默認爲localhost,所以僞分佈配置時,節點是NameNode的同時也是DataNode。localhost能夠刪除有能夠保留。本文Master僅做爲NameNode節點,Slave做爲DataNode節點,所以刪除localhost。

        二、core-site.xml

         三、hdfs-site.xml

               因爲只有一個Slave節點,全部dfs.replication的值設爲1。

         四、mapred-site.xml

              默認文件名爲mapred-site.xml.template,重命名爲mapred-site.xml後,修改配置。

        

        五、yarn-site.xml

配置完成後,將Master上的hadoop文件夾複製到Slave節點上相同路徑下(/usr/local/),並修改文件夾的owner爲hadoop。

接着即可啓動分佈式hadoop集羣了,啓動集羣前須要先關閉集羣中每一個節點的防火牆,不然會引發DataNode啓動了,但Live datanode爲0。

啓動分佈式集羣

 首次啓動須要先在Master節點執行NameNode的格式化,命令:

  • hdfs namenode -format

而後啓動hadoop,hadoop的啓動與關閉須要在Master節點上進行。

啓動hadoop,執行hadoop/sbin中的啓動腳本

  • cd /usr/local/hadoop/sbin

  • ./start-dfs.sh

  • ./start-yarn.sh

  • ./mr-jobhistory-daemon.sh start historyserver

啓動完成後,經過jps命令能夠查看各個節點所啓動的進程。啓動正確則能夠看到ResourceManager、Namenode、SecondaryNameNode、JobHistoryServer進程,如圖。

 在Slave節點中能夠看到NodeManager和DataNode進程,如圖。

任一進程缺乏都表示啓動出錯。同時,咱們還須要在Master節點經過命令hdfs dfsadmin -report查看DataNode是否正常啓動,若是Live datanode爲0,則說明啓動失敗。因爲咱們只配置了一個DataNode,因此顯示Live datanode爲1,如圖。

        咱們還能夠經過web頁面查看DataNode和NameNode的狀態:http://master:50070。

 接着咱們即可以執行分佈式實例了,咱們啓動了mr-jobhistory服務,能夠經過Web頁http://master:8088/cluster,點擊Tracking UI中的history查看任務運行信息。

關閉hadoop集羣

 在Master節點上執行腳本:

  • stop-yarn.sh

  • stop-dfs.sh

  • mr-jobhistory-daemon.sh stop historyserver



網易雲免費體驗館,0成本體驗20+款雲產品! 

更多網易技術、產品、運營經驗分享請點擊


相關文章:
【推薦】 [翻譯]pytest測試框架(一)
【推薦】 網易鄭棟:數據採集與分析的那些事——從數據埋點到AB測試

相關文章
相關標籤/搜索