ganglia安裝配置(監控hadoop)

環境:

系統
CentOS 6.0
hadoop集羣中有3臺服務器
server01 -> master 192.168.255.128
server02 -> slave    192.168.255.130
server03 -> slave    192.168.255.131

軟件倉庫 epel

    直接使用epel源中的ganglia(自己編譯安裝有點小麻煩)。

1. 安裝epel源

  1. wget http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm -P /usr/local/src  
  2. rpm -ivh /usr/local/src/epel-release-6-5.noarch.rpm  
  3. rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 

2. ganglia服務端安裝gemtad和gmond

  1. yum install ganglia ganglia-devel ganglia-gmetad ganglia-gmond ganglia-web ganglia-gmond-python 

會自動安裝相應的依賴包。

3. 其他服務器(作爲客戶端)只需安裝gmond

  1. yum install ganglia ganglia-gmond 

4. 配置ganglia的gemtad

  1. cd /etc/ganglia  
  2. vi gmetad.conf  
  3. data_source "ganglia_hadoop" 192.168.255.128 192.168.255.130 192.168.255.131 

修改數據源data_source這一行即可。

data_source "name" ip01:port01 ip02:port02 ...

說明:後面這些IP地址就是進行監控的主機,冒號後面跟的是要監聽的端口號(默認爲8649)。

啓動服務

  1. service gmetad start  
  2. chkconfig gmetad on 

5. 所有服務器配置客戶端gmond(使用多播)

  1. vi /etc/ganglia/gmond.conf  
  2. cluster {  
  3.   name = "ganglia_hadoop" 
  4.   ... 

只需將集羣的name設置爲gmetad中data_source設置的名字即可。

啓動服務

  1. service gmond start 

6. 配置nginx

  1. vi /usr/local/nginx/conf/vhosts/ganglia.conf  
  2. server  
  3. {  
  4.   listen  80;  
  5.   server_name  域名;  
  6.   index index.html index.htm index.php;  
  7.   root  /usr/share/ganglia;  
  8.  
  9.   location ~ ^(.*)\/\.svn\/  
  10.   {  
  11.     deny all;  
  12.   }  
  13.  
  14.   location ~ .*\.(php|php5)?$  
  15.   {  
  16.     # fastcgi_pass  unix:/tmp/php-cgi.sock;  
  17.     fastcgi_pass  php_server01;  
  18.     fastcgi_index index.php;  
  19.     include fcgi.conf;  
  20.   }  
  21.  
  22.   location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  
  23.   {  
  24.     expires      30d;  
  25.     access_log   off;  
  26.   }  
  27.  
  28.   location ~ .*\.(js|css)?$  
  29.   {  
  30.     expires      1h;  
  31.     access_log   off;  
  32.   }  
  33.  
  34.   log_format  ganglia  '$remote_addr - $remote_user [$time_local] [$request_time] "$request"'  
  35.               '$status $body_bytes_sent "$http_referer"'  
  36.               '"$http_user_agent" $http_x_forwarded_for';  
  37.   access_log  off;  

 主目錄爲:/usr/share/ganglia

可以添加通過nginx設置用戶名密碼訪問和限制IP訪問。

訪問http://域名

會報錯:

Notice: Undefined variable: private in /usr/share/ganglia/auth.php on line 27

因爲我的php-fpm的運行用戶爲nobody,程序auth.php中fopen打開的文件爲private_clusters,鏈接到/etc/ganglia/private_clusters,查看文件的擁有者

  1. ls -l /etc/ganglia/private_clusters  
  2. -rw-r----- 1 root apache 1222 Feb 17  2010 /etc/ganglia/private_clusters 

組擁有者爲apache,修改組爲php-fpm運行的用戶即可。

  1. chown root:nobody /etc/ganglia/private_clusters 

7. 監控hadoop

我使用的hadoop的版本爲hadoop-0.20.205.0.tar.gz,ganglia的配置文件已經修改爲hadoop-metrics2.properties

修改配置文件

  1. vi $HADOOP_HOME/conf/hadoop-metrics2.properties
  2. # for Ganglia 3.1 support  
  3. *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31  
  4.  
  5. *.sink.ganglia.period=10 
  6.  
  7. # default for supportsparse is false  
  8. *.sink.ganglia.supportsparse=true 
  9.  
  10. *.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both 
  11. *.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40 
  12.  
  13. namenode.sink.ganglia.servers=239.2.11.71:8649  
  14.  
  15. datanode.sink.ganglia.servers=239.2.11.71:8649  
  16.  
  17. jobtracker.sink.ganglia.servers=239.2.11.71:8649  
  18.  
  19. tasktracker.sink.ganglia.servers=239.2.11.71:8649  
  20.  
  21. maptask.sink.ganglia.servers=239.2.11.71:8649  
  22.  
  23. reducetask.sink.ganglia.servers=239.2.11.71:8649 

只需要將ganglia段落中的相關注釋取消即可。

注意:需要根據你的ganglia的版本來選擇註釋以下哪一行

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

需要修改hadoop集羣中所有的服務器的hadoop-metrics2.properties文件

重啓hadoop

  1. stop-all.sh  
  2. start-all.sh 

8. 查看ganglia的監控頁面將會看到相關的監控信息

如:dfs.dataname metrics

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章