天天看點

Ubuntu Server 14.04 安裝配置Ganglia監控Hadoop

今天配置了Ganglia來監控Hadoop和Hbase,這裡做一下簡單的記錄。

ganglia主要有兩個程序,它們是:gmond和gmetad。叢集内的節點,通過運作gmond收集釋出節點狀态資訊,然後gmetad周期性的輪詢gmond收集到的資訊,然後存入rrd資料庫,通過web伺服器可以對其進行查詢展示。

1.首先,選擇一台伺服器來運作gmetad和apache伺服器(主節點)。

1.1 運作如下的指令安裝必要的軟體。

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

1.2 配置/etc/ganglia/gmetad.conf檔案

安裝完成後,編輯/etc/ganglia/gmetad.conf檔案,修改data_source,“cyber_space”是我給叢集取的名字,後面跟着要監控的主機的名稱。可以在主機後添加端口資訊,這些規則在配置檔案的注釋中寫的比較詳細。

# data_source "my cluster" 10 localhost  my.machine.edu:8649  1.2.3.5:8655

# data_source "my grid" 50 1.3.4.7:8655 grid.org:8651 grid-backup.org:8651

# data_source "another source" 1.3.4.7:8655  1.3.4.8

data_source "cyber_space" namenode
           

因為是單點傳播,是以datasource配置成namenode,表示gmeta隻從namenode上讀取節點資料

2.配置被監控的節點(從節點)

2.1 使用如下的指令安裝gmond。

sudo apt-get install ganglia-monitor
           

我這裡也需要監控gmeta運作的節點,是以在第一步中,也安裝了ganglia-monitor。

2.2 配置/etc/ganglia/gmond.conf檔案

首先,需要将cluster塊中的name改為我們叢集的名稱,如下所示:

cluster {
  name = "cyber_space"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}
           

叢集中,我們使用單點傳播模式,即所有被監控的節點,都會将資訊發送到指定的ip上,是以,需要修改udp_send_channel塊,将mcast_join注釋,然後添加host,host的值是gmeta運作的節點,如下所示,

udp_send_channel {
  /*mcast_join = 239.2.11.71 */
  host =  192.168.2.160
  port = 8649
  ttl = 1
}
           

,udp_recv_channel也需要修改為如下所示,将mcast_join和bind注釋。

udp_recv_channel {
  /*mcast_join = 239.2.11.71 */
  port = 8649
  /*bind = 239.2.11.71 */
}
           

3. 重新開機各項服務

在主節點上運作如下指令重新開機gmeta和gmond

sudo /etc/init.d/gmetad restart
suod /etc/init.d/ganglia-monitor restart
           

在從節點上運作如下指令重新開機gmond

sudo /etc/init.d/ganglia-monitor restart
           

4. 建立web-frontend到apache目錄下的軟連結

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

5. 在浏覽器上打開連結:http://192.168.2.160/ganglia,就能看到下圖所示的ganglia監控頁面,說明ganglia已經配置成功了

Ubuntu Server 14.04 安裝配置Ganglia監控Hadoop

6. 配置Hadoop監控

修改Hadoop的配置檔案,HADOOP_HOME/etc/hadoop/hadoop-metrics2.properties,按照下面的内容對配置檔案進行修改。

# for Ganglia 3.1 support
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31

# *.sink.ganglia.period=10

# default for supportsparse is false
# *.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

# Tag values to use for the ganglia prefix. If not defined no tags are used.
# If '*' all tags are used. If specifiying multiple tags separate them with 
# commas. Note that the last segment of the property name is the context name.
#
#*.sink.ganglia.tagsForPrefix.jvm=ProcesName
#*.sink.ganglia.tagsForPrefix.dfs=
#*.sink.ganglia.tagsForPrefix.rpc=
#*.sink.ganglia.tagsForPrefix.mapred=

namenode.sink.ganglia.servers=namenode:8649

datanode.sink.ganglia.servers=namenode:8649

resourcemanager.sink.ganglia.servers=namenode:8649

nodemanager.sink.ganglia.servers=namenode:8649

mrappmaster.sink.ganglia.servers=namenode:8649
           

這裡也是因為采用單點傳播的原因,是以把資料都發送到namenode上,由namenode的gmeta來采集這些資料

修改完後,重新開機ganglia的服務即可。可看到如下圖所示的諸如NameNode,DataNode等資訊。

Ubuntu Server 14.04 安裝配置Ganglia監控Hadoop