第5章 Hadoop 2.6 Multi Node Cluster安裝指令

Hadoop Multi Node Cluster規劃如下圖,





  • 由多台電腦組成: 有一台主要的電腦master,在HDFS擔任NameNode角色,在MapReduce2(YARN)擔任ResourceManager角色
  • 有多台的電腦data1、data2、data3,在HDFS擔任DataNode角色,在MapReduce2(YARN)擔任NodeManager角色 




  • Hadoop Multi Node Cluster規劃,整理如下表格:
    伺服器名稱
    IP
    HDFS
    YARN
    master
    192.168.56.100
    NameNode
    ResourceManager
    data1
    192.168.56.101
    DataNode
    NodeManager
    data2
    192.168.56.102
    DataNode
    NodeManager
    data3
    192.168.56.103
    DataNode
    NodeManager



    安裝步驟



    1    複製Single Node Cluster到data1
    2    VirtualBox 介面卡設定
     3    設定data1伺服器
    4   複製data1伺服器至data2、data3、master
    5    設定data2
    伺服器
    6 設定data3伺服器
    7    設定master伺服器 

    8    master連線至data1、data2、data3建立HDFS目錄
    9    建立與格式化NameNode HDFS 目錄
    10    啟動Hadoop Multi Node cluster
    11    開啟Hadoop Resource-Manager Web介面
    12    開啟NameNode Web介面


    5.1.複製Single Node Cluster到data1
    我們將第4章所建立的Single Node Cluster VirtualBox hadoop虛擬機器複製到data1

    5.2.VirtualBox介面卡設定
    請參考本書說明設定虛擬機器介面卡


    5.3.設定data1伺服器
    Step2.編輯網路設定檔設定固定IP
    sudo gedit /etc/network/interfaces
    
    輸入下列內容
    # interfaces(5) file used by ifup(8) and ifdown(8)
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1
    iface eth1 inet static
    address         192.168.56.101
    netmask         255.255.255.0
    network         192.168.56.0
    broadcast       192.168.56.255
    
     
    Step3.設定hostname
    sudo gedit /etc/hostname
    
    輸入下列內容:
    data1
    
    Step4.設定hosts檔案
    sudo gedit /etc/hosts
    
    加入下列內容:
    192.168.56.100 master
    192.168.56.101 data1
    192.168.56.102 data2
    192.168.56.103 data3
    
    
    Step5.修改core-site.xml
    sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml
    
    在<configuration></configuration>之間,輸入下列內容:
    <property>
       <name>fs.default.name</name>
       <value>hdfs://master:9000</value>
    </property> 
    
    Step6.修改yarn-site.xml
    sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml
    
    在<configuration></configuration>之間,加入下列內容:
    <property>
         <name>yarn.resourcemanager.resource-tracker.address</name>
         <value>master:8025</value>
     </property>
    <property>
         <name>yarn.resourcemanager.scheduler.address</name>
         <value>master:8030</value>
     </property>
    <property>
         <name>yarn.resourcemanager.address</name>
         <value>master:8050</value>
     </property> 
    
    Step7.修改mapred-site.xml
    sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml
    
    在<configuration></configuration>之間,輸入下列內容:
    <property>
       <name>mapred.job.tracker</name>
       <value>master:54311</value>
    </property>
    Step8.修改hdfs-site.xml
    sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
    
    在<configuration></configuration>之間,輸入下列內容:

    <property>
       <name>dfs.replication</name>
       <value>3</value>
    </property>
    <property>
       <name>dfs.datanode.data.dir</name>
       <value> file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
     </property> 
    Step10.確認網路設定
    ifconfig
    5.4.複製data1伺服器至data2、data3、master
    請參考書中說明,複製data1伺服器至data2、data3、master

    5.5.設定data2伺服器
    Step2.設定data2固定IP
    sudo gedit /etc/network/interfaces
    
    輸入下列內容
    # interfaces(5) file used by ifup(8) and ifdown(8)
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1
    iface eth1 inet static
    address         192.168.56.102
    netmask         255.255.255.0
    network         192.168.56.0
    broadcast       192.168.56.255
     
    Step3.設定data2主機名稱
    sudo gedit /etc/hostname
    
    輸入下列內容:
    data2
    

    5.6.設定data3伺服器
    Step6.設定data3固定IP
    sudo gedit /etc/network/interfaces
    
    輸入下列內容
    # interfaces(5) file used by ifup(8) and ifdown(8)
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1
    iface eth1 inet static
    address         192.168.56.103
    netmask         255.255.255.0
    network         192.168.56.0
    broadcast       192.168.56.255
    Step7.設定data3主機名稱
    sudo gedit /etc/hostname
    
    輸入下列內容:
    data3
    


    5.7.設定master伺服器
    Step2.設定master固定IP
    sudo gedit /etc/network/interfaces
    
    輸入下列內容
    # interfaces(5) file used by ifup(8) and ifdown(8)
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp
    
    auto eth1
    iface eth1 inet static
    address         192.168.56.100
    netmask         255.255.255.0
    network         192.168.56.0
    broadcast       192.168.56.255
     
    Step3.設定master主機名稱
    sudo gedit /etc/hostname
    
    輸入下列內容:
    master
    

    Step4.設定hdfs-site.xml
    sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml
    
    輸入下列內容:
     
     <property>
       <name>dfs.replication</name>
       <value>3</value>
    </property>
    <property>
       <name>dfs.namenode.name.dir</name>
       <value> file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
    </property>

    Step5.設定master檔案
    sudo gedit /usr/local/hadoop/etc/hadoop/master
    
    輸入下列內容:
     
    master
    
    

    Step6.設定slaves檔案
    sudo gedit /usr/local/hadoop/etc/hadoop/slaves
    
    輸入下列內容:
     
    data1
    data2
    data3
    
    

    5.8.master連線至data1、data2、data3建立HDFS目錄
    master SSH連線至data1並建立HDFS目錄
    ssh data1
    sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
    sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
    sudo chown hduser:hduser -R /usr/local/hadoop
    exit
    
    master SSH連線至data2並建立HDFS目錄
    ssh data2
    sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
    sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
    sudo chown hduser:hduser -R /usr/local/hadoop
    exit
    
    master SSH連線至data3並建立HDFS目錄
    ssh data3
    sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
    sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode
    sudo chown hduser:hduser -R /usr/local/hadoop
    exit
    
    5.9.建立與格式化NameNode HDFS 目錄
    Step1 重新建立NameNode HDFS 目錄

    sudo rm -rf /usr/local/hadoop/hadoop_data/hdfs
    mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode
    sudo chown -R hduser:hduser /usr/local/hadoop
    
    Step2 格式化NameNode HDFS 目錄
    hadoop namenode -format
    
    5.10.啟動Hadoop
    啟動全部
    start-all.sh
    

    啟動start-dfs.sh,再啟動 start-yarn.sh
    start-dfs.sh
    
    start-yarn.sh
    
    查看目前所執行的行程
    jps
    
    5.11.開啟Hadoop Resource-Manager Web介面
    Hadoop Resource­Manager Web介面網址
    http://master:8088/
    
    5.12 開啟NameNode Web介面
    開啟HDFS Web UI網址
    http://master:50070/
    




    以上內容節錄自這本書有詳細介紹:
      Python+Spark 2.0+Hadoop機器學習與大數據分析實戰 http://www.tenlong.com.tw/items/9864341537?item_id=1023658



    Share on Google Plus

    About kevin

    This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
      Blogger Comment
      Facebook Comment

    11 意見:

    1. 在5.3 設定 data1 伺服器 Step 10 用 ifconfig 確認網路設定是否正確時,並沒有看到如書上的設定結果(192.168.x.x IP address 都沒有顯示),是不是網路的設定有問題?
      ========================================================================================
      hduser@data1:~$ ifconfig
      enp0s3 Link encap:Ethernet HWaddr 08:00:27:ee:a4:39
      inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
      inet6 addr: fe80::1e45:232f:59c9:450f/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
      RX packets:79 errors:0 dropped:0 overruns:0 frame:0
      TX packets:152 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:10254 (10.2 KB) TX bytes:14678 (14.6 KB)

      enp0s8 Link encap:Ethernet HWaddr 08:00:27:97:ef:b2
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:122 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:0 (0.0 B) TX bytes:19369 (19.3 KB)

      lo Link encap:Local Loopback
      inet addr:127.0.0.1 Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING MTU:65536 Metric:1
      RX packets:141 errors:0 dropped:0 overruns:0 frame:0
      TX packets:141 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1
      RX bytes:11607 (11.6 KB) TX bytes:11607 (11.6 KB)

      hduser@data1:~$

      回覆刪除
    2. Sorry, 剛發現我的 Ubuntu OS 是 16.04 版, 所以新版的 OS 應該在網路設定部分與舊版 OS 不同。是不是只要編輯 grub 檔做修改,重新執行產生 config 檔,就可以用相同的網路環境來模擬?

      回覆刪除
    3. 網卡名稱在ubuntu 15後就有變更囉~~~
      要嘛就編輯grub,要嘛就是修正範例的網卡編號~

      回覆刪除
    4. 其實把eth0,eth1->改能enps03和enps08
      # interfaces(5) file used by ifup(8) and ifdown(8)
      auto lo
      iface lo inet loopback

      auto enp0s3
      iface enp0s3 inet dhcp

      auto enp0s8
      iface enp0s8 inet static
      address 192.168.56.100
      netmask 255.255.255.0
      network 192.168.56.0
      broadcast 192.168.56.255

      其他步驟完全一樣 就沒問題了

      回覆刪除
      回覆
      1. 其實把eth0,eth1->改能enp0s3和enp0s8(我打錯了,是這樣才對)

        刪除
    5. 開啟NameNode Web介面,用PORT 50070,無法開出LIVE NODE資訊

      回覆刪除
    6. 作者已經移除這則留言。

      回覆刪除
    7. 按照書本的步驟完成設定,可以從master透過ssh到不同的datax看到正在執行的行程,但是從master的web介面卻無法看到有任何datanode上來,有可能漏掉哪些設定呢?謝謝

      回覆刪除
      回覆
      1. 在master端start-all.sh前依序輸入 > ssh-copy-id -i .ssh/id_rsa.pub hostname(data1/2/3),即可成功

        刪除
      2. 作者已經移除這則留言。

        刪除