hadoop平台是原生态安装的,安装完各模块发现没有统一监控界面,经网上查询说ganglia是个不错的选择,开始在网上大量搜索关于如何用ganglia监控的资料,碰到各种报错,就是出不来想要的结果,拿就用最原始的方法,看沉下心来看官方文档,理解参数的意义,各种尝试组合,终于在3天下班的前一刻出来自己想要的结果,也许现在的理解还不是最准确的,但是为了以后更好的研究,暂时把自己安装的过程记录下来以便后续研究有个参考
我的hadoop环境如下 masternode1-masternode2 HA 中的namenode datenode(slavenode1~7)
hbase:从节点 (slavenode1~4) 主节点masternode1-masternode2 ha
spark( slavenode1~7)
我的 ganglia环境是slavenode8这台机器配置ganglia主,客户端在hadoop的每台机器都安装
1. 所需软件包安装
yum install –y gcc gcc-c++ libpng freetype zlib libdbi apr* libxml2-devel pkg-config glib pixman pango pango-devel freetye-
2. 下载并编译安装expat
wget http://jaist.dl.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz
tar -xf expat-2.1.0.tar.gz && cd expat-2.1.0 && ./configure --prefix=/usr/local/expat && make && make install && cd ..
[root@slavenode8 hadoop]# mkdir /usr/local/expat/lib64 && cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/
3. 下载并编译安装confuse
1) #wget http://ftp.twaren.net/Unix/NonGNU//confuse/confuse-2.7.tar.gz
2) tar -xf confuse-2.7.tar.gz && cd confuse-2.7 && ./configure CFLAGS=-fPIC --disable-nls --prefix=/usr/local/confuse && make && make install && cd ..
64bit机器需要拷贝动态链接库
mkdir -p /usr/local/confuse/lib64 && cp -a -f /usr/local/confuse/lib/* /usr/local/confuse/lib64/
4. 安装libconfuse
wget http://pkgs.repoforge.org/libconfuse/libconfuse-devel-2.6-2.el5.rf.x86_64.rpm
wget http://pkgs.repoforge.org/libconfuse/libconfuse-2.6-2.el5.rf.x86_64.rpm
rpm -ivh libconfuse-*
5. 安装pcre
wget http://ftp.exim.llorien.org/pcre/pcre-8.33.tar.gz
tar zxvf pcre-8.33.tar.gz && cd pcre-8.33 &&./configure --prefix=/usr --libdir=/usr/lib64 && make && make install
6. 安装RRDTool,存储ganglia收集的数据
cd /opt/hadoop
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool.tar.gz
tar zxvf rrdtool* && cd rrdtool-* && ./configure --prefix=/usr && make -j8 && make install
which rrdtool
ldconfig -p | grep rrd
7. 安装ganglia服务端
wget http://jaist.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.6.0/ganglia-3.6.0.tar.gz
tar -xf ganglia-3.6.0.tar.gz && cd ganglia-3.6.0
./configure --with-gmetad --sysconfdir=/etc/ganglia --disable-python
make && make install
(如果出现/usr/local/lib/libpython2.7.a: could not read symbols: Bad value 错误,需要在编译的时候加入 --disable-python )
cp gmond/gmond.init /etc/rc.d/init.d/gmond
cp gmetad/gmetad.init /etc/rc.d/init.d/gmetad
chkconfig --add gmond && chkconfig gmond on
chkconfig --add gmetad && chkconfig gmetad on
修改/etc/rc.d/init.d/gmetad和/etc/rc.d/init.d/gmond,分别指定如下参数:
vi /etc/rc.d/init.d/gmetad
GMETAD=/usr/local/sbin/gmetad
vi /etc/rc.d/init.d/gmond
<