關(guān)于 Ganglia 軟件擂仍,Ganglia是一個(gè)跨平臺(tái)可擴(kuò)展的,高性能計(jì)算系統(tǒng)下的分布式監(jiān)控系統(tǒng)熬甚,如集群和網(wǎng)格逢渔。它是基于分層設(shè)計(jì),它使用廣泛的技術(shù)乡括,如XML數(shù)據(jù)代表肃廓,便攜數(shù)據(jù)傳輸,RRDtool用于數(shù)據(jù)存儲(chǔ)和可視化诲泌。它利用精心設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)和算法實(shí)現(xiàn)每節(jié)點(diǎn)間并發(fā)非常低的盲赊。
它已移植到廣泛的操作系統(tǒng)和處理器架構(gòu)上,目前在世界各地成千上萬的集群正在使用敷扫。它已被用來連結(jié)大學(xué)校園和世界各地哀蘑,可以處理2000節(jié)點(diǎn)的規(guī)模。
一葵第、安裝環(huán)境
Ubuntu Server 14.04
安裝gmetad的機(jī)器:192.168.1.50(Spark-Master)
安裝gmond的機(jī)器:192.168.1.50(Spark-Master)绘迁,192.168.1.51(Spark-Slave1),192.168.1.52(Spark-Slave2)卒密,192.168.1.53(Spark-Slave3)
瀏覽監(jiān)控web頁面的機(jī)器:192.168.51.50(Spark-Master)
二缀台、介紹
Ganglia 監(jiān)控套件包括三個(gè)主要部分:gmond,gmetad哮奇,和網(wǎng)頁接口膛腐,通常被稱為ganglia- web。
gmond 是一個(gè)守護(hù)進(jìn)程鼎俘,他運(yùn)行在每一個(gè)需要監(jiān)測的節(jié)點(diǎn)上哲身,收集監(jiān)測統(tǒng)計(jì),發(fā)送和接受在同一個(gè)組播或單播通道上的統(tǒng)計(jì)信息贸伐。
gmetad 也是一個(gè)守護(hù)進(jìn)程勘天,他定期檢查gmonds ,從那里拉取數(shù)據(jù),并將他們的指標(biāo)存儲(chǔ)在RRD存儲(chǔ)引擎中误辑。它可以查詢多個(gè)集群并聚合指標(biāo)沧踏。RRD也被用于生成用戶界面的web前端。
ganglia- web 顧名思義巾钉,他應(yīng)該安裝在有g(shù)metad運(yùn)行的機(jī)器上翘狱,以便讀取RRD文件。
三砰苍、安裝
1潦匈、確保在 Ubuntu14.04 上安裝了 LAMP 服務(wù)
Ganglia 由兩個(gè)所謂主要守護(hù)進(jìn)程 gmond(Ganglia 監(jiān)測守護(hù)進(jìn)程)和 gmetad(Ganglia 元守護(hù)進(jìn)程),一個(gè)基于 PHP 的 Web 前端和其他一些小的實(shí)用程序赚导。
2茬缩、在 Ubuntu14.04 上安裝 Ganglia
打開終端,運(yùn)行以下命令:
sudo apt-get install ganglia-monitor rrdtool gmetad ganglia-webfrontend
3吼旧、配置 Ganglia
已經(jīng)完成了基本的安裝凰锡,現(xiàn)在我們按照下面必要的步驟來配置。
4圈暗、Ganglia 主節(jié)點(diǎn)配置(Spark-Master)
現(xiàn)在需要復(fù)制 Ganglia webfrontend Apache 配置掂为,使用下面的命令來正確的位置:
sudo cp /etc/ganglia-webfrontend/apache.conf /etc/apache2/sites-enabled/ganglia.conf
現(xiàn)在需要使用以下命令來編輯 Ganglia 元守護(hù)程序的配置文件:
sudo vi /etc/ganglia/gmetad.conf
更改如下:
data_source "MySpark" 10 Spark-Master:8649 Spark-Slave1:8649 Spark-Slave2:8649 Spark-Slave3:8649
通過以上列出機(jī)器服務(wù)的數(shù)據(jù)源,IP:端口或服務(wù)器名稱:端口员串。如果未指定端口號(hào)8649(默認(rèn)gmond端口)勇哗。
case_sensitive_hostnames 1------設(shè)置為1,則不會(huì)將hostname中大寫變成小寫
單播:可以跨網(wǎng)段傳播寸齐,只將信息發(fā)送給指定的機(jī)器欲诺。要配置成為單播你應(yīng)該指定一個(gè)(或者多個(gè))接受的主機(jī)。
組播:在機(jī)器所處的網(wǎng)段中發(fā)送廣播渺鹦,發(fā)送給位于同一網(wǎng)段的所有機(jī)器扰法。如果你正在使用組播傳輸,那么你沒必要改變?nèi)魏螙|西海铆,因?yàn)檫@是Ganglia包安裝默認(rèn)的迹恐。唯一要做的就是把gmetad指向一個(gè)或幾個(gè)運(yùn)行著gmond的主機(jī)挣惰。沒有必要列出每一個(gè)單個(gè)主機(jī)卧斟,因?yàn)間mond被設(shè)置為接受模式時(shí)會(huì)包含所有主機(jī)的列表以及整個(gè)集群的統(tǒng)計(jì)信息。
使用了單播模式憎茂,需要使用下面的命令編輯主節(jié)點(diǎn)的配置文件:
sudo vi /etc/ganglia/gmond.conf
更改如下:(紅色為改動(dòng))
globals {
daemonize = yes
setuid = yes
user = hadoop------運(yùn)行Ganglia的用戶
debug_level = 0
max_udp_msg_len = 1472
mute = no
deaf = no
host_dmax = 0
cleanup_threshold = 300
gexec = no
send_metadata_interval = 5------發(fā)送數(shù)據(jù)的時(shí)間間隔
}
cluster {
name = "MySpark"------集群名稱
owner = "hadoop"------運(yùn)行Ganglia的用戶
latlong = "unspecified"
url = "unspecified"
}
udp_send_channel {
# mcast_join = 192.168.1.50------注釋掉組播
host = 192.168.1.50------發(fā)送給安裝gmetad的機(jī)器
port = 8649
ttl = 1
}
udp_recv_channel {
# mcast_join = 192.168.1.50------注釋掉組播
port = 8649
}
保存并關(guān)閉文件珍语。
需要重啟服務(wù):
sudo /etc/init.d/ganglia-monitor restart
sudo /etc/init.d/gmetad start
sudo /etc/init.d/apache2 restart
現(xiàn)在你可以使用以下命令訪問ganglia webinterface:
5、Ganglia 客戶端配置(Spark-Slave*)
需要安裝以下所有服務(wù)器要監(jiān)視客戶端包:
sudo apt-get install ganglia-monitor
需要使用下面的命令編輯gmond.conf文件:
sudo vi /etc/ganglia/gmond.conf
更改如下:(紅色為改動(dòng))
globals {
daemonize = yes
setuid = yes
user = hadoop
debug_level = 0
max_udp_msg_len = 1472
mute = no
deaf = no
host_dmax = 0
cleanup_threshold = 300
gexec = no
send_metadata_interval = 5
}
cluster {
name = "MySpark"
owner = "hadoop"
latlong = "unspecified"
url = "unspecified"
}
udp_send_channel {
# mcast_join = 192.168.1.50
host = 192.168.1.50
port = 8649
ttl = 1
}
udp_recv_channel {
# mcast_join = 192.168.1.50
port = 8649
}
保存并退出竖幔。
重啟 ganglia monitor 服務(wù):
sudo /etc/init.d/ganglia-monitor restart
6板乙、監(jiān)控Hadoop集群
(1) 修改Hadoop的配置文件/etc/hadoop/hadoop-metrics.properties(適用于Ganglia老版本)
dfs.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
dfs.period=10
dfs.servers=192.168.1.50:8649
mapred.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
mapred.period=10
mapred.servers=192.168.1.50:8649
jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
jvm.period=10
jvm.servers=192.168.1.50:8649
rpc.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
rpc.period=10
rpc.servers=192.168.1.50:8649
ugi.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
ugi.period=10
ugi.servers=192.168.1.50:8649
(2) 修改Hadoop的配置文件/etc/hadoop/hadoop-metrics2.properties(適用于Ganglia新版本)
*.sink.file.class=org.apache.hadoop.metrics2.sink.FileSink
*.period=10
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=10
*.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both
*.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40
namenode.sink.ganglia.servers=192.168.1.50:8649
datanode.sink.ganglia.servers=192.168.1.50:8649
resourcemanager.sink.ganglia.servers=192.168.1.50:8649
nodemanager.sink.ganglia.servers=192.168.1.50:8649
maptask.sink.ganglia.servers=192.168.1.50:8649
reducetask.sink.ganglia.servers=192.168.1.50:8649
所有的servers都修改為安裝為gmetad的機(jī)器IP(Spark-Master),保存完以后將配置文件分發(fā)到各個(gè)Slave節(jié)點(diǎn)的${HADOOP_HOME}/etc/hadoop目錄下,重啟Hadoop集群即可募逞。