Hadoop集群监测工具——ganglia安装实例
2014-01-07 19:04
351 查看
Ganglia是一个用于集群性能监测的工具,为了说明其使用方法,本文结合Hadoop集群环境讲解ganglia的安装过程,希望能给感兴趣的朋友提供参考帮助。
Hadoop 0.20.2
ganglia 3.1.7
数据收集节点(gmetad、gweb):这个部件用于收集gmond发送的数据,并通过web部件将其显示处理,可以通过ganglia-webfrontend包完成安装;
web界面:这个就是用于将gmetad整理生成的xml数据以网页形式显示出来的部件,已经包含在了ganglia-webfrontend包中。
安装ganglia
在需要监测的Hadoop节点上,执行下面的命令,安装ganglia-monitor(gmond):
sudo apt-get install ganglia-monitor
在用于Web查看数据的机器上,执行下面的命令安装ganglia-collector和Web部件(gmetad和web frontend):
sudo apt-get install ganglia-webfrontend
ganglia主要由一个gmetad和若干gmond构成:gmetad负责收集各个节点的监测数据,在集群中只需要选择一台节点进行安装即可,然后可以通过这台节点获取监测结果;gmond负责监测各个节点,所以在集群中的每个节点上都需要安装gmond,通过配置/etc/gmond.conf中的udp_send_channel部分可以设定目标gmetad的ip和端口;
在配置过程,主要修改/etc/gmetad.conf和/etc/gmond.conf两个文件:
/etc/gmond.conf中主要需要对三部分进行修改:
udp_send_channel:目标gmetad的ip和端口
udp_recv_channel:当节点作为gmetad时,可以通过这里设定接收数据的ip和端口号;
tcp_accept_channel:从名称可以看出,这个属性走的是tcp协议,也就是在通过web前端访问ganglia时走的端口号;
/etc/gmetad.conf只需要修改该data_source属性:
找到data_source对应的位置,其格式为 data_source "my cluster" [polling interval] address1:port addreses2:port ...
my cluster需要对应到gmond.conf中cluster里的name属性值,polling interval可以省略,表示gmetad多长时间向gmond收集数据,后面表示安装了gmetad的节点ip和端口号(端口号缺省为8649)
配置前建议先进行备份:sudo cp gmond.conf gmond.conf.back(第一次配置,以免出错,-_-)
主要修改下面红色字体部分:
[plain] view
plaincopy
/* This configuration is as close to 2.5.x default behavior as possible
The values closely match ./gmond/metric.h definitions in 2.5.x */
globals {
daemonize = yes
setuid = yes
user = ganglia
debug_level = 0
max_udp_msg_len = 1472
mute = no
deaf = no
<span style="color:#FF0000;">host_dmax = 86400 /*secs */</span>
cleanup_threshold = 300 /*secs */
gexec = no
<span style="color:#FF0000;">send_metadata_interval = 30</span>
}
/* If a cluster attribute is specified, then all gmond hosts are wrapped inside
* of a <CLUSTER> tag. If you do not specify a cluster tag, then all <HOSTS> will
* NOT be wrapped inside of a <CLUSTER> tag. */
cluster {
<span style="color:#FF0000;">name = "hadoop"</span>
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
/* The host section describes attributes of the host, like the location */
host {
location = "unspecified"
}
/* Feel free to specify as many udp_send_channels as you like. Gmond
used to only support having a single channel */
udp_send_channel {
<span style="color:#FF0000;">//mcast_join = 239.2.11.71</span>
<span style="color:#FF0000;">host=10.77.20.57</span>
port = 8649
ttl = 1
}
/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
<span style="color:#FF0000;">//mcast_join = 239.2.11.71</span>
<span style="color:#FF0000;">//port = 8649</span>
<span style="color:#FF0000;">//bind = 10.77.20.57</span>
}
/* You can specify as many tcp_accept_channels as you like to share
an xml description of the state of the cluster */
tcp_accept_channel {
<span style="color:#FF0000;">//port = 8649</span>
}
... ...
简单说明一下上面修改的内容:
host_dmax表示多长时间未接到节点发送的数据就从ganglia中断开,send_metadata_interval表示gmond发送数据的间隔时间,name表示监测系统的名字;
udp_send_channel表示gmond发送端的情况,host表示目标主机的ip,port是对应的端口,这里配置的是单播环境,所以需要把mcast_join注释掉;
由于这是对数据监测节点配置,所以udp_recv_channel和tcp_accept_channel部分都需要注释掉。
数据收集节点配置
我这里使用ip地址为10.77.20.57的主机安装gmetad,数据收集节点上的gmond.conf内容修改如下:
[plain] view
plaincopy
/* This configuration is as close to 2.5.x default behavior as possible
The values closely match ./gmond/metric.h definitions in 2.5.x */
globals {
daemonize = yes
setuid = yes
user = ganglia
debug_level = 0
max_udp_msg_len = 1472
mute = no
deaf = no
<span style="color:#FF0000;">host_dmax = 86400 /*secs */</span>
cleanup_threshold = 300 /*secs */
gexec = no
<span style="color:#FF0000;">send_metadata_interval = 30</span>
}
/* If a cluster attribute is specified, then all gmond hosts are wrapped inside
* of a <CLUSTER> tag. If you do not specify a cluster tag, then all <HOSTS> will
* NOT be wrapped inside of a <CLUSTER> tag. */
cluster {
<span style="color:#FF0000;">name = "hadoop"</span>
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
/* The host section describes attributes of the host, like the location */
host {
location = "unspecified"
}
/* Feel free to specify as many udp_send_channels as you like. Gmond
used to only support having a single channel */
udp_send_channel {
<span style="color:#FF0000;">//mcast_join = 239.2.11.71</span>
<span style="color:#FF0000;">host=10.77.20.57</span>
port = 8649
ttl = 1
}
/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
<span style="color:#FF0000;">//mcast_join = 239.2.11.71</span>
<span style="color:#FF0000;">port = 8649</span>
<span style="color:#FF0000;">bind = 10.77.20.57</span>
}
/* You can specify as many tcp_accept_channels as you like to share
an xml description of the state of the cluster */
tcp_accept_channel {
<span style="color:#FF0000;">port = 8649</span>
}
... ...
大部分内容和数据监测节点上是一样的,不过需要吧recv和accept部分的内容加上。
gmetad.conf文件内容只需要修改如下部分:
data_source "hadoop" 10.77.20.57
上面的ip地址可以改为localhost,因为在gmond.conf中的accept部分并未指定ip,只要能够访问安装了gmetad的节点就可以。
完成上面的修改以后,可以重启gmetad和gmond服务,命令如下:
[plain] view
plaincopy
sudo service gmetad restart
sudo service ganglia-monitor restart
注意,在数据监测节点上由于只装了gmond,所以只需要执行下面的命令就可以了。
可以通过netstat命令查看是否启动成功,内容如下:
[plain] view
plaincopy
yn@ubuntu:/etc/ganglia$ netstat -atunp | grep 8649
(并非所有进程都能被检测到,所有非本用户的进程信息将不会显示,如果想看到所有信息,则必须切换到 root 用户)
tcp 0 0 0.0.0.0:8649 0.0.0.0:* LISTEN -
tcp 0 0 10.77.20.57:8649 10.77.20.57:58904 TIME_WAIT -
tcp 0 0 10.77.20.57:8649 10.77.20.57:58907 TIME_WAIT -
tcp 0 0 10.77.20.57:8649 10.77.20.57:58903 TIME_WAIT -
tcp 0 0 10.77.20.57:8649 10.77.20.57:58902 TIME_WAIT -
udp 0 0 10.77.20.57:8649 0.0.0.0:* -
udp 0 0 10.77.20.57:42603 10.77.20.57:8649 ESTABLISHED -
yn@ubuntu:/etc/ganglia$
进入/etc/apache2/sites-available目录,创建新的虚拟目录文件: sudo vi ganglia,文件内容如下:
[plain] view
plaincopy
Listen 8080
<VirtualHost *:8080>
ServerAdmin yn@ganglia
DocumentRoot /usr/share/ganglia-webfrontend/
ErrorLog "/var/log/apache2/ganglia_errors.log"
CustomLog "/var/log/apache2/ganglia_accesses.log" common
</VirtualHost>
我这里使用8080端口监控ganglia数据,并且通过DocumentRoot设定ganglia Web的目录地址。
启动虚拟目录:sudo a2ensite ganlia
重启apache:sudo service apache2 restart
通过上面的设置,就可以通过下面的地址访问ganglia了:
http://localhost:8080
顺利的话可以看到下面的网页内容:
另外,后续如果需要监测hadoop系统,那么可以参考:http://wiki.apache.org/hadoop/GangliaMetrics
原文地址:http://blog.csdn.net/yangning5850/article/details/8646775
测试环境
Ubuntu 12.04 LTSHadoop 0.20.2
ganglia 3.1.7
主要概念
数据监测节点(gmond):这个部件装在需要监测的节点上,用于收集本节点的运行情况,并将这些统计信息传送到gmetad,Ubuntu系统中的ganglia-monitor包可以安装;数据收集节点(gmetad、gweb):这个部件用于收集gmond发送的数据,并通过web部件将其显示处理,可以通过ganglia-webfrontend包完成安装;
web界面:这个就是用于将gmetad整理生成的xml数据以网页形式显示出来的部件,已经包含在了ganglia-webfrontend包中。
安装ganglia
在需要监测的Hadoop节点上,执行下面的命令,安装ganglia-monitor(gmond):sudo apt-get install ganglia-monitor
在用于Web查看数据的机器上,执行下面的命令安装ganglia-collector和Web部件(gmetad和web frontend):
sudo apt-get install ganglia-webfrontend
配置ganglia
首先简单说明一下ganglia工作的原理,便于理解后面的配置。ganglia主要由一个gmetad和若干gmond构成:gmetad负责收集各个节点的监测数据,在集群中只需要选择一台节点进行安装即可,然后可以通过这台节点获取监测结果;gmond负责监测各个节点,所以在集群中的每个节点上都需要安装gmond,通过配置/etc/gmond.conf中的udp_send_channel部分可以设定目标gmetad的ip和端口;
在配置过程,主要修改/etc/gmetad.conf和/etc/gmond.conf两个文件:
/etc/gmond.conf中主要需要对三部分进行修改:
udp_send_channel:目标gmetad的ip和端口
udp_recv_channel:当节点作为gmetad时,可以通过这里设定接收数据的ip和端口号;
tcp_accept_channel:从名称可以看出,这个属性走的是tcp协议,也就是在通过web前端访问ganglia时走的端口号;
/etc/gmetad.conf只需要修改该data_source属性:
找到data_source对应的位置,其格式为 data_source "my cluster" [polling interval] address1:port addreses2:port ...
my cluster需要对应到gmond.conf中cluster里的name属性值,polling interval可以省略,表示gmetad多长时间向gmond收集数据,后面表示安装了gmetad的节点ip和端口号(端口号缺省为8649)
数据监测节点配置
数据监测节点上只运行gmond,所以只需要对/etc/ganglia/gmond.conf文件进行配置:配置前建议先进行备份:sudo cp gmond.conf gmond.conf.back(第一次配置,以免出错,-_-)
主要修改下面红色字体部分:
[plain] view
plaincopy
/* This configuration is as close to 2.5.x default behavior as possible
The values closely match ./gmond/metric.h definitions in 2.5.x */
globals {
daemonize = yes
setuid = yes
user = ganglia
debug_level = 0
max_udp_msg_len = 1472
mute = no
deaf = no
<span style="color:#FF0000;">host_dmax = 86400 /*secs */</span>
cleanup_threshold = 300 /*secs */
gexec = no
<span style="color:#FF0000;">send_metadata_interval = 30</span>
}
/* If a cluster attribute is specified, then all gmond hosts are wrapped inside
* of a <CLUSTER> tag. If you do not specify a cluster tag, then all <HOSTS> will
* NOT be wrapped inside of a <CLUSTER> tag. */
cluster {
<span style="color:#FF0000;">name = "hadoop"</span>
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
/* The host section describes attributes of the host, like the location */
host {
location = "unspecified"
}
/* Feel free to specify as many udp_send_channels as you like. Gmond
used to only support having a single channel */
udp_send_channel {
<span style="color:#FF0000;">//mcast_join = 239.2.11.71</span>
<span style="color:#FF0000;">host=10.77.20.57</span>
port = 8649
ttl = 1
}
/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
<span style="color:#FF0000;">//mcast_join = 239.2.11.71</span>
<span style="color:#FF0000;">//port = 8649</span>
<span style="color:#FF0000;">//bind = 10.77.20.57</span>
}
/* You can specify as many tcp_accept_channels as you like to share
an xml description of the state of the cluster */
tcp_accept_channel {
<span style="color:#FF0000;">//port = 8649</span>
}
... ...
简单说明一下上面修改的内容:
host_dmax表示多长时间未接到节点发送的数据就从ganglia中断开,send_metadata_interval表示gmond发送数据的间隔时间,name表示监测系统的名字;
udp_send_channel表示gmond发送端的情况,host表示目标主机的ip,port是对应的端口,这里配置的是单播环境,所以需要把mcast_join注释掉;
由于这是对数据监测节点配置,所以udp_recv_channel和tcp_accept_channel部分都需要注释掉。
数据收集节点配置
我这里使用ip地址为10.77.20.57的主机安装gmetad,数据收集节点上的gmond.conf内容修改如下:[plain] view
plaincopy
/* This configuration is as close to 2.5.x default behavior as possible
The values closely match ./gmond/metric.h definitions in 2.5.x */
globals {
daemonize = yes
setuid = yes
user = ganglia
debug_level = 0
max_udp_msg_len = 1472
mute = no
deaf = no
<span style="color:#FF0000;">host_dmax = 86400 /*secs */</span>
cleanup_threshold = 300 /*secs */
gexec = no
<span style="color:#FF0000;">send_metadata_interval = 30</span>
}
/* If a cluster attribute is specified, then all gmond hosts are wrapped inside
* of a <CLUSTER> tag. If you do not specify a cluster tag, then all <HOSTS> will
* NOT be wrapped inside of a <CLUSTER> tag. */
cluster {
<span style="color:#FF0000;">name = "hadoop"</span>
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
/* The host section describes attributes of the host, like the location */
host {
location = "unspecified"
}
/* Feel free to specify as many udp_send_channels as you like. Gmond
used to only support having a single channel */
udp_send_channel {
<span style="color:#FF0000;">//mcast_join = 239.2.11.71</span>
<span style="color:#FF0000;">host=10.77.20.57</span>
port = 8649
ttl = 1
}
/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
<span style="color:#FF0000;">//mcast_join = 239.2.11.71</span>
<span style="color:#FF0000;">port = 8649</span>
<span style="color:#FF0000;">bind = 10.77.20.57</span>
}
/* You can specify as many tcp_accept_channels as you like to share
an xml description of the state of the cluster */
tcp_accept_channel {
<span style="color:#FF0000;">port = 8649</span>
}
... ...
大部分内容和数据监测节点上是一样的,不过需要吧recv和accept部分的内容加上。
gmetad.conf文件内容只需要修改如下部分:
data_source "hadoop" 10.77.20.57
上面的ip地址可以改为localhost,因为在gmond.conf中的accept部分并未指定ip,只要能够访问安装了gmetad的节点就可以。
完成上面的修改以后,可以重启gmetad和gmond服务,命令如下:
[plain] view
plaincopy
sudo service gmetad restart
sudo service ganglia-monitor restart
注意,在数据监测节点上由于只装了gmond,所以只需要执行下面的命令就可以了。
可以通过netstat命令查看是否启动成功,内容如下:
[plain] view
plaincopy
yn@ubuntu:/etc/ganglia$ netstat -atunp | grep 8649
(并非所有进程都能被检测到,所有非本用户的进程信息将不会显示,如果想看到所有信息,则必须切换到 root 用户)
tcp 0 0 0.0.0.0:8649 0.0.0.0:* LISTEN -
tcp 0 0 10.77.20.57:8649 10.77.20.57:58904 TIME_WAIT -
tcp 0 0 10.77.20.57:8649 10.77.20.57:58907 TIME_WAIT -
tcp 0 0 10.77.20.57:8649 10.77.20.57:58903 TIME_WAIT -
tcp 0 0 10.77.20.57:8649 10.77.20.57:58902 TIME_WAIT -
udp 0 0 10.77.20.57:8649 0.0.0.0:* -
udp 0 0 10.77.20.57:42603 10.77.20.57:8649 ESTABLISHED -
yn@ubuntu:/etc/ganglia$
配置apache
由于需要通过web访问ganglia数据,所以需要配置apache虚拟主机并指向ganglia web目录,具体步骤如下:进入/etc/apache2/sites-available目录,创建新的虚拟目录文件: sudo vi ganglia,文件内容如下:
[plain] view
plaincopy
Listen 8080
<VirtualHost *:8080>
ServerAdmin yn@ganglia
DocumentRoot /usr/share/ganglia-webfrontend/
ErrorLog "/var/log/apache2/ganglia_errors.log"
CustomLog "/var/log/apache2/ganglia_accesses.log" common
</VirtualHost>
我这里使用8080端口监控ganglia数据,并且通过DocumentRoot设定ganglia Web的目录地址。
启动虚拟目录:sudo a2ensite ganlia
重启apache:sudo service apache2 restart
通过上面的设置,就可以通过下面的地址访问ganglia了:
http://localhost:8080
顺利的话可以看到下面的网页内容:
另外,后续如果需要监测hadoop系统,那么可以参考:http://wiki.apache.org/hadoop/GangliaMetrics
原文地址:http://blog.csdn.net/yangning5850/article/details/8646775
相关文章推荐
- Hadoop集群监测工具——ganglia安装实例
- Hadoop集群监测工具——ganglia安装实例
- Ubuntu 14.04下jdkHadoop2.8集群安装配置教程并运行wordcount实例
- hadoop集群监控工具Ambari安装
- hadoop集群监控工具Apache Ambari安装配置教程
- Hadoop建设工具Ambari的安装部署及完整使用(四)——Ambari使用之集群建立
- hadoop集群监控工具ambari安装
- hadoop集群监控工具Apache Ambari安装配置教程
- 图文讲解基于centos虚拟机的Hadoop集群安装,并且使用Mahout实现贝叶斯分类实例 (3)
- Ganglia监控Hadoop及Hbase集群性能(安装配置)
- 图文讲解基于centos虚拟机的Hadoop集群安装,并且使用Mahout实现贝叶斯分类实例 (7)
- Ganglia监控Hadoop集群的安装部署[转]
- Ganglia监控Hadoop集群的安装部署
- Hadoop 三节点集群安装配置详细实例
- 如何查看hadoop集群是否安装成功(用jps命令和实例进行验证)
- hadoop集群监控工具ambari安装
- Ganglia监控Hadoop集群的安装部署
- hadoop 三节点集群安装配置详细实例
- 大数据集群搭建之hadoop、tomcat、jdk等工具的安装(三)
- Hadoop建设工具Ambari的安装部署及完整使用(五)——Ambari使用之集群卸载