1. 程式人生 > >ganglia監控hadoop叢集配置

ganglia監控hadoop叢集配置

本篇文章是參考網上別人的部落格,加自己實踐後記錄下來的,免得自己又忘了,感謝網際網路的分享精神,感謝大牛們的分享。

ganglia簡介

  • Metrics- 監控電腦的執行資料
  • Node - 一臺電腦,或許擁有多個CPU,中文稱之為節點。
  • Cluster - 一組節點,中文稱之為簇。通常節點之間擁有達到G位元的高頻寬,簇內通過組播協議,每個節點組播自己的資料,所以每個節點擁有整個簇的狀態,這種冗餘設計可以提高簇的魯棒性。一般簇內節點為相同的系統和體系結構,由同一個管理員管理。
  • Grid - 一組簇,中文可稱之為網格。網格的用處是在一個大範圍內把各異構的簇通過寬頻匯聚在一起。
    Ganglia的各種組成
功能 名稱及配置檔案 位置
資料採集器 名叫gmond(Ganglia MONitor Daemon)的服務程式,配置檔案是/etc/ganglia/gmond.conf 位於每個Node上
資料混合收集器 名叫gmetad(Ganglia METAdata Daemon)的服務程式,配置檔案是/etc/ganglia/gmetad.conf。它通過輪詢收集gmond的資料,並聚合簇的各類資訊,然後儲存在本地rrdtool的資料庫中 最好每個cluster都有一個gmetad,以便能構建多級網路
Web視覺化工具 這是用PHP指令碼實現的將資料視覺化,並畫出表格。可以是任何支援PHP、SSL和XML的web伺服器。一般都用Apache2 web伺服器 一般與gmetad部署在一個節點上
額外的高階工具 gmetric可以用來新增你需要監控的Node額外狀態
gstat可以直接獲得Ganglia的資料 每臺需要這些功能的Node上

來自網易部落格

實驗環境

機器 系統 軟體
ip1 centos 7 gmetad + gmond +ganglia-web 3.7.2
ip2 centos 5 gmond 3.7.1
ip3 centos 5 gmond 3.7.1
ip4 centos 5 gmond 3.7.1
ip5 centos 5 gmond 3.7.1
ip6 centos 5 gmond 3.7.1
ip7 centos 5 gmond 3.7.1

ganglia安裝配置

安裝

  1. ip1 安裝ganglia主節點
    • yum -y install epel-release
    • yum -y install rrdtool httpd
    • yum -y install ganglia-devel ganglia-gmetad ganglia-gmond
    • yum -y install php ganglia-web
  2. ip2-ip7 安裝ganglia從節點
    • yum -y install epel-release
    • yum -y install ganglia-mond

配置

  • ganglia配置檔案目錄:/etc/ganglia
  • rrd資料庫存放目錄:/var/lib/ganglia/rrds
  • httpd主站點目錄:/var/www/html
  • ganglia-web安裝目錄:/usr/share/ganglia
  • ganglia-web配置目錄:/etc/httpd/conf.d/ganglia.conf

  • 相關配置檔案修改

    • 將ganglia-web安裝目錄連結到httpd主站點目錄
      將 ganglia-web 的 站 點 目 錄 連 接 到 httpd 主 站 點 目 錄 $ ln -s /usr/share/ganglia /var/www/html
    • 修改httpd主站點目錄下ganglia站點目錄的訪問許可權
      將 ganglia 站點目錄訪問許可權改為 apache:apache,否則會報錯
$  chown -R apache:apache /var/www/html/ganglia 
$  chmod -R 755 /var/www/html/ganglia
- 修改rrd資料庫存放目錄訪問許可權 將 rrd 資料庫存放目錄訪問許可權改為

$ chown -R ganglia:ganglia /var/lib/ganglia/rrds

- 修改ganglia-web的訪問許可權:修改/etc/httpd/conf.d/ganglia.conf  
  Alias /ganglia /usr/share/ganglia 
  <Location /ganglia>
   Require all granted   
   #Require ip 10.1.2.3   
   #Require host example.org 
  </Location>
  • 配置/etc/ganglia/gmond.conf

cluster {     
    name = "hadoop cluster"    ... 
}  

udp_send_channel {     
 #the host who gather this cluster's monitoring data and send these data   to gmetad node       
  host = ip1
  port = 8649 
}   

udp_recv_channel {    
   port = 8649  
}   

tcp_accept_channel { 
   port = 8649  
}  

2.2 Hadoop cluster被監測節點的配置 配置/etc/ganglia/gmond.conf


cluster {     
   name = "hadoop cluster"    ...  
}   
udp_send_channel {     
# the host who gather this cluster's monitoring data and send these data   to gmetad node    
   host = ip1      
   port = 8649  
}  

udp_recv_channel { 
   port = 8649  
}  

tcp_accept_channel {
    port = 8649  
}

Hadoop配置

主節點:

 # 修改/hadoop/etc/hadoop/hadoop-metrics2.properties

namenode.sink.ganglia.servers=ip1:8649
resourcemanager.sink.ganglia.servers=ip1:8649
mrappmaster.sink.ganglia.servers=ip1:8649
jobhistoryserver.sink.ganglia.servers=ip1:8649
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=10
*.sink.ganglia.supportsparse=true
*.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both
*.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40

從節點

datanode.sink.ganglia.servers=ip1:8649
nodemanager.sink.ganglia.servers=ip1:8649
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=10
*.sink.ganglia.supportsparse=true
*.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both
*.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40

成果

這裡寫圖片描述
可以看到有datanode相關資訊

注意問題

  1. ganglia反應有點慢,每次重啟後,資料得等一陣子才顯示出來。這個也跟設定的有關,10秒一次顯示
  2. 我本來配置每個節點都有gmond,cluster的資訊傳送到本地的gmond,由gmond傳送給gmetad,但是一直不成功。我使用了telnet localhost 8649,能看到資料,但是gmetad就是不顯示。暫時也沒找到什麼原因。

參考