第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.0.100
    NameNode
    ResourceManager
    data1
    192.168.0.101
    DataNode
    NodeManager
    data2
    192.168.0.102
    DataNode
    NodeManager
    data3
    192.168.0.103
    DataNode
    NodeManager





    安裝步驟



    1    複製Single Node Cluster到data1
    2    設定data1伺服器
    3    複製data1伺服器至data2、data3、master
    4    設定data2、data3伺服器
    5    設定master伺服器
    6    master連線至data1、data2、data3建立HDFS目錄
    7    建立與格式化NameNode HDFS 目錄
    8    啟動Hadoop Multi Node cluster
    9    開啟Hadoop Resource-Manager Web介面
    10    開啟NameNode Web介面


    5.1.複製Single Node Cluster到data1
    我們將之前所建立的Single Node Cluster VirtualBox hadoop虛擬機器複製到data1
    5.2.設定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 static 
    address 192.168.0.101
    netmask 255.255.255.0
    network 192.168.0.0
    gateway 192.168.0.1 
    dns-nameservers 192.168.0.1
     
    Step3.設定hostname
    sudo gedit /etc/hostname
    
    輸入下列內容:
    data1
    
    Step4.設定hosts檔案
    sudo gedit /etc/hosts
    
    輸入下列內容:
    127.0.0.1 localhost
    127.0.1.1 hadoop
    192.168.0.100 master
    192.168.0.101 data1
    192.168.0.102 data2
    192.168.0.103 data3
    
    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    
    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>
     
    
    5.3.複製data1伺服器至data2、data3、master


    5.4.設定data2、data3伺服器
    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 static 
    address 192.168.0.102
    netmask 255.255.255.0
    network 192.168.0.0
    gateway 192.168.0.1 
    dns-nameservers 192.168.0.1
     
    Step3.設定data2主機名稱
    sudo gedit /etc/hostname
    
    輸入下列內容:
    data2
    


    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 static 
    address 192.168.0.103
    netmask 255.255.255.0
    network 192.168.0.0
    gateway 192.168.0.1 
    dns-nameservers 192.168.0.1
     
    Step7.設定data3主機名稱
    sudo gedit /etc/hostname
    
    輸入下列內容:
    data3
    


    5.5.設定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 static 
    address 192.168.0.100
    netmask 255.255.255.0
    network 192.168.0.0
    gateway 192.168.0.1 
    dns-nameservers 192.168.0.1
     
    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.6.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.7.建立與格式化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.8.啟動Hadoop
    啟動start-dfs.sh,再啟動 start-yarn.sh
    start-dfs.sh
    start-yarn.sh
    

    啟動全部
    start-all.sh
    
    查看目前所執行的行程
    jps
    
    Hadoop Resource­Manager Web介面網址
    http://master:8088/
    
    5.9.開啟Hadoop Resource-Manager Web介面
    開啟HDFS Web UI網址
    http://master:50070/
    
    5.10.開啟Hadoop Resource-Manager Web介面
    開啟HDFS Web UI網址
    http://master:50070/
    



    以上內容節錄自這本書。很適合入門初學者:
      Python+Spark 2.0+Hadoop機器學習與大數據分析實戰 http://pythonsparkhadoop.blogspot.tw/2016/10/pythonspark-20hadoop.html

    《購買本書 限時特價專區》
    博客來:http://www.books.com.tw/products/0010730134?loc=P_007_090  

    天瓏:https://www.tenlong.com.tw/items/9864341537?item_id=1023658
    PChome個人賣場免運(作者簽名):http://seller.pcstore.com.tw/S149783177/C1115178907.htm
    兩書合購 *75折* 又免運:http://seller.pcstore.com.tw/S149783177/C1115202736.htm 


    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

    6 意見:

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

      回覆刪除
    2. 請問啟動Hadoop速度有點慢是正常的嗎??
      密碼已經打了,卡在這裡
      data1: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hduser-datanode-data1.out

      回覆刪除
    3. 請問一下,根據書上及網頁上都設定好了,但無法從master連上data1,錯誤訊息如下:
      ssh: connect to host data1 port 22: No route to host
      如何解決呢?謝謝!

      回覆刪除
    4. 請問書上寫192.168.56.100,這邊指令範例寫192.168.0.100
      有差嗎?
      我試了好幾次都連不上

      回覆刪除
    5. 請問一下,根據書上及網頁上都設定好了,但無法從master連上data1/data2/data3,錯誤訊息如下:
      hduser@master:~$ ssh data1
      ssh: connect to host data1 port 22: Connection timed out
      hduser@master:~$ ssh data2
      ssh: connect to host data2 port 22: No route to host
      hduser@master:~$ ssh data3
      ssh: connect to host data3 port 22: Connection timed out
      如何解決呢?謝謝!

      回覆刪除
    6. 樓上幾樓的問題可能跟ubuntu 15.10之後網路卡命名的方式變了有關,
      不再是eth0,作者是用ubuntu 14.10。

      可以用ifconfig指令查詢一下,
      然後在設定固定IP部分的interfaces設定檔把eht0取代。

      回覆刪除