ganglia安装与启动

来源:互联网 发布:开票软件为什么打不开 编辑:程序博客网 时间:2024/06/01 09:21
 10.136.149.100 root root
/data/jinchaogao/   ganglia  和  httpd
启动方法:
whereis gmond
运行 /usr/local/sbin/gmond
whereis gmetad
运行 /usr/local/sbin/gmetad
web服务启动:
cd /usr/local/apache2/bin
./httpd

$GANGLIA_WEB:

/usr/local/apache2/htdocs/ganglia
 
数据包名字叫jinchaogao.tar.gz

环境:

系统
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源

wget http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm -P /usr/local/src  

rpm -ivh /usr/local/src/epel-release-6-5.noarch.rpm  

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 

2. ganglia服务端安装gemtad和gmond

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

会自动安装相应的依赖包。

3. 其他服务器(作为客户端)只需安装gmond

yum install ganglia ganglia-gmond 

4. 配置ganglia的gemtad

cd /etc/ganglia  (非yum安装  /usr/local/etc/gmond.conf)

vi gmetad.conf  

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)。

启动服务

service gmetad start  

10 chkconfig gmetad on 

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

11 vi /etc/ganglia/gmond.conf  

12 cluster {  

13   name = "ganglia_hadoop" 

14   ... 

只需将集群的name设置为gmetad中data_source设置的名字即可。

启动服务

15 service gmond start 

6. 配置nginx

16 vi /usr/local/nginx/conf/vhosts/ganglia.conf  

17 server  

18 {  

19   listen  80;  

20   server_name  域名;  

21   index index.html index.htm index.php;  

22   root  /usr/share/ganglia;  

23  

24   location ~ ^(.*)\/\.svn\/  

25   {  

26     deny all;  

27   }  

28  

29   location ~ .*\.(php|php5)?$  

30   {  

31     # fastcgi_pass  unix:/tmp/php-cgi.sock;  

32     fastcgi_pass  php_server01;  

33     fastcgi_index index.php;  

34     include fcgi.conf;  

35   }  

36  

37   location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  

38   {  

39     expires      30d;  

40     access_log   off;  

41   }  

42  

43   location ~ .*\.(js|css)?$  

44   {  

45     expires      1h;  

46     access_log   off;  

47   }  

48  

49   log_format  ganglia  '$remote_addr - $remote_user [$time_local] [$request_time] "$request"'  

50               '$status $body_bytes_sent "$http_referer"'  

51               '"$http_user_agent" $http_x_forwarded_for';  

52   access_log  off;  

53 

 主目录为:/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,查看文件的拥有者

54 ls -l /etc/ganglia/private_clusters  

55 -rw-r----- 1 root apache 1222 Feb 17  2010 /etc/ganglia/private_clusters 

组拥有者为apache,修改组为php-fpm运行的用户即可。

56 chown root:nobody /etc/ganglia/private_clusters 

7. 监控hadoop

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

修改配置文件

57 vi $HADOOP_HOME/conf/hadoop-metrics2.properties

58 # for Ganglia 3.1 support  

59 *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31  

60  

61 *.sink.ganglia.period=10 

62  

63 # default for supportsparse is false  

64 *.sink.ganglia.supportsparse=true 

65  

66 *.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both 

67 *.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40 

68  

69 namenode.sink.ganglia.servers=239.2.11.71:8649  

70  

71 datanode.sink.ganglia.servers=239.2.11.71:8649  

72  

73 jobtracker.sink.ganglia.servers=239.2.11.71:8649  

74  

75 tasktracker.sink.ganglia.servers=239.2.11.71:8649  

76  

77 maptask.sink.ganglia.servers=239.2.11.71:8649  

78  

79 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

80 stop-all.sh  

81 start-all.sh 

0 0
原创粉丝点击