NEIL's_學而時習之x不學無術~私藏IT技術經驗分享部落

關於部落格
NEIL. Cheng....寫作只是為了日後工作之備忘操作參考

本部落格文章撰寫前進邁向第五年(since 2009 ~至今)仍繼續推進分享IT學習!!About Windows/Linux Server,Virtualization


分享網誌: 由於,本人預先完成LAB後,才補上撰寫文章與截圖,若發現文圖對照說明有誤..本人將盡快校正,也請不吝指教! Thanks!

  • 146059

    累積人氣

  • 1

    今日人氣

    0

    訂閱人氣

雲端運算: Hadoop HDFS(二): 進階節點管理 by Navier

 DataNode 動態節點新增以(dn03)為例 

<情境說明>

目前whitelist,slave檔案組態狀況如下(Hadoop上線中,僅有dn01,dn02 兩datanode上線)

現計畫讓新節點"dn03"上線擴展節點以及Hadoop儲存容量
目前Hadoop線上節點有dn01(30),dn02(31):  DFS剩餘可使用空間108.41GB
現新增節點(dn03:32) 擴增HDFS儲存空間:

(A.)編輯"slave" :  加入"dn03 " 主機對應紀錄(一併新增/etc/hosts 主機:IP對應記錄)
(B.)編輯"whitelist" 節點白名單:"dn03"加入白名單
(C.)其他組態提醒:前篇介紹Hadoop,JAVA環境變數對應,各節點金鑰驗證皆需組態好(不贅述)

      Then 於nn1主機上

       執行
"hdfs dfsadmin -refreshNodes"   #動態更新dfs.hosts和dfs.hosts.exclude配置
 (D.)  連線登入"dn03"  啟動"datanode "主機服務

          Then 執行指令:"hadoop-daemon.sh start datanode"

(E.) 回到NameNode(nn1) 底下察看HDFS 報告資訊

       # 看 "dn03" 節點已成功上線(動態擴增節點完成)
           DFS Remaining (剩餘使用空間亦由原先108gb 延展至162.61GB
現演示"刪除節點"(dn03:32) 

(a.)  於dn03 停用datanode 服務 

        執行指令:
"hadoop-daemon.sh stop datanode"   #確認dn03節點停止datanode服務
(b.)nn1: 檢查HDFS檔案系統狀況: 
  
           
執行指令:hdfs fsck / -files -blocks -locations"     # "/" is  HEALTHY
   
      檢視HDFS Report :     Hadoop 自動檢查節點失效花費時間有點久....終偵測到dn03 Dead
 檢查nn1 log :  Hadoop偵測"dn03"失效將其節點移除

2015-10-16 20:24:08,334 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: FSCK started by navier (auth:SIMPLE) from /10.10.10.10 for path / at Fri Oct 16 20:24:08 CST 2015
2015-10-16 20:25:56,804 INFO org.apache.hadoop.hdfs.StateChange: BLOCK* removeDeadDatanode: lost heartbeat from 10.10.10.32:50010
2015-10-16 20:25:56,806 INFO org.apache.hadoop.net.NetworkTopology: Removing a node: /default-rack/10.10.10.32:50010

(C.)Then 我們將編輯"slave" , "whitelist"  內"dn03"主機註解掉

      下次重新啟動Hadoop後,dn03 節點將不會上線(不浮現Dead Nodes資訊): 卸載節點完成

       執行  
"stop-dfs.sh && start-dfs.sh"   #目前Lab又恢復到兩節點dn01,dn02 情境

HDFS Balancer :  執行均衡分配N節點DataNode分散儲存比率 % :   延續上個Lab環境實作

編輯
 "hdfs-site.xml"  添加以下設定修改預設"bandwidthPersSec:每秒資料遷移速率預設1MB/s

<name>dfs.datanode.balance.bandwidthPerSec </name>
<value>1024000</value>                                       #現修改為10MB/s 頻寬遷移資料速率
</property>

 執行  "stop-dfs.sh && start-dfs.sh" 生效配置      #請衡量網路傳輸頻寬配置上述值

 Then  NavierHDFS "/" 建立一個名為"adaburu" 資料夾,並將一個容量大小21GB檔案上傳到

     該目錄
並檢查其健康狀況OK

       The filesystem under path '/adaburu/Big-Data' is HEALTHY

      察看HDFS 目前儲存資訊報告:

     Sum  DFS Used%: 37.19% ,  

     
dn01 DFS Used%: 33.64%  

     dn02 DFS Used%:  33.64%

     dn03  DFS Used%:    0%

     # dn01,dn02 兩者儲存比率差距0,等會我們將dn03重新加入來檢視看看
           dn02:  資料儲存狀況檢視 DFS Used%: 33.64
          dn03:  資料儲存狀況檢視 DFS Used%: 0 , 方才附加dn03 因沒資料寫入得"0"
 
                        #因此我們可以手動執行"HDFS Blancer" 讓資料分佈趨近均衡

       執行指令: " hdfs balancer -threshold 5 "  

 #各節點間儲存比率差距>=5%以上,進行資料儲存遷移,用以解決各節點儲存比率失衡狀況


 
 
15/10/17 09:38:31 INFO balancer.Balancer: 1 underutilized: [10.10.10.32:50010:DISK]
15/10/17 09:38:31 INFO balancer.Balancer: Need to move 10.44 GB to make the cluster balanced.
15/10/17 09:38:31 INFO balancer.Balancer: Decided to move 3.00 GB bytes from 10.10.10.30:50010:DISK to 10.10.10.32:50010:DISK                           #從.30 node 搬遷(3GB)到.32)
15/10/17 09:38:31 INFO balancer.Balancer: Will move 3.00 GB in this iteration

                                                       [HDFS Blancer 執行中....等待結果]
    #過了一些時間後,又看到  從.31(dn02)  搬遷 3GB 到 .32 (dn03)  紀錄

1
5/10/17 09:49:45 INFO balancer.Balancer: 2 over-utilized: [10.10.10.31:50010:DISK, 10.10.10.30:50010:DISK]
15/10/17 09:49:45 INFO balancer.Balancer: 1 underutilized: [10.10.10.32:50010:DISK]
15/10/17 09:49:45 INFO balancer.Balancer: Need to move 9.48 GB to make the cluster balanced.
15/10/17 09:49:45 INFO balancer.Balancer: Decided to move 3.00 GB bytes from 10.10.10.31:50010:DISK to 10.10.10.32:50010:DISK
15/10/17 09:49:45 INFO balancer.Balancer: Will move 3.00 GB in this iteration
  移動資料完後檢視各節點DFS Use %

     dn01:
調整後由 原33.64% - > 28.39%
    dn02: 調整後由 原33.64% - > 27.33%

   dn03: 調整後由 原0% - > 11.56%    

   #經手動調整後HDFS 經過盡可能均衡調配各節點儲存比率%
Hadoop 另存在一支背景自動偵測執行HDFS Balancer指令:

當偵測節點儲存比率差距=>10%將自動進行HDFS Blancer 動作

執行 "start-balancer.sh"


組建Ganglia Monitor :   以利系統管理員日後監控Hadoop 集群狀況 以Ubuntu 14.04 環境為例

計畫將WebUI介面安裝在NameNode(nn1.10)主機上(已預先安裝好 apache2,php5)

nn1 軟件安裝:
 

sudo apt-get install ganglia-monitor rrdtool gmetad ganglia-webfrontend 

Then 編輯 "gmetad.conf"

sudo vi /etc/ganglia/gmetad.conf

 data_source "Navier-Hadoop" nn1 nn2 dn01 dn02 dn03    #定義叢集名稱與配置監控節點

Then 編輯 gmontd.conf    #配置客戶端監控代理服務(nn2,dn01,dn02,dn03只需安裝gmontd)

sudo apt-get install ganglia-monitor              #各gmontd節點配置一致參考以下(不贅述) 


sudo vi  /etc/ganglia/gmond.conf      #"name" 參數名稱需與gmetad.conf  "datasource"一致

udp_send_channel {
  /*mcast_join = 239.2.11.71*/            
  host = 10.10.10.10             #指定namenode主機:nn1
  port = 8649
  ttl = 1
}
 
udp_recv_channel {
  /*mcast_join = 239.2.11.71*/
  port = 8649
  /*bind = 239.2.11.71*/
}

重啟各節點 gmetd,ganglia-monitor 生效配置 

/etc/init.d/gmetad restart

/etc/init.d/ganglia-monitor resatrt

 
組態WebUI: 該網址為:http://nn1/ganglia  or http://10.10.10.10/ganglia

sudo ln -s /usr/share/ganglia-webfrontend/ 
/var/www/html/ganglia   

/etc/init.d/apache2 restart

瀏覽Ganglia WebUI 介面:

<主頁面>
     Monitor: procs/s mem/s network-flow   
   此外,也提供CPUs Total:4 ,HostsUP主機偵測,HostDown 偵測節點死亡, CPU平均負載%...等
相簿設定
標籤設定
相簿狀態