一、rrdtool安装

1.1 安装依赖包

由于rrdtool依赖的包比较多,而且包之间也存在依赖,故使用yum安装由于服务器无法联网,故使用iso文件创建本地yum源,方法见下:

(1)创建iso存放目录和挂载目录

mkdir /mnt/iso 
mkdir /mnt/cdrom

(2)将iso镜像文件上传到/mnt/iso文件夹下

(3)将/mnt/iso/下的iso文件挂载到/mnt/cdrom目录

mount -o loop /mnt/iso/XXXXX.iso /mnt/cdrom

 

注:挂载完之后对其操作会提示设备繁忙,此时需要umount解开挂载才行

查看是否挂载成功: df -h

用来查看系统中所有挂载的,mount也可以

(4)如果/etc/yum.repos/下面有其它的*.repo文件,先创建个文件夹,将这些*.repo先转移到文件夹中,自己写一个.repo的文件

mkdir /etc/yum.repos.d/bak 
mv *.repo /etc/yum.repos.d/bak 

 

然后创建自己的.repo文件vi myself.repo

[base]
name=RedHat
baseurl=file:///mnt/cdrom
enabled=1
gpgckeck=0
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release,file:///mnt/cdrom/RPM-GPG-KEY-redhat-beta

安装命令见下:

yum -y install cairo cairo-devel pango pango-devel libxml2 libxml2-devel glib2 glib2-devel

1.2 源码安装rrdtool

 从rrdtool的官网 (http://oss.oetiker.ch/rrdtool/) 下载rrdtool的源码包,解压,编译,安装

tar -zxvf rrdtool-1.4.8.tar.gz 
cd rrdtool-1.4.8/
./configure -prefix=/usr/local/rrdtool 
make && make install 

 在命令行运行rrdtool -v,测试安装是否成功

二、Apache安装

2.1 依赖包安装

(1)源码安装apr(也可通过yum安装)

tar -zxvf apr-1.5.0.tar.gz
cd apr-1.5.0
./configure && make && make install

 (2)源码安装 apr-util(也可通过yum安装)

tar -zxvf apr-util-1.5.3.tar.gz
cd apr-util-1.5.3
./configure --with-apr=/usr/local/apr && make && make install

(3)源码安装 libconfuse

tar -zxvf confuse-2.7.tar.gz
cd confuse-2.7
./configure CFLAGS=-fPIC --disable-nls && make && make install

(4)源码安装 pcre

tar -zxvf pcre-8.34.tar.gz
cd pcre-8.34
./configure && make && make install

安装pcre时, 可能提示说没有c++ 编译器,可通过yum -y install gcc-c++ 进行安装

2.2 源码安装apache

从官网( http://www.apache.org/ )下载apache源码包,进行解压,编译,安装

./configure --prefix=/app/ApacheInstall/httpd-2.4.7/ --sysconfdir=/app/apache-config --enable-shared=max --enable-so --enable-rewrite --enable-ssl --with-apr=/usr/local/apr
make && make install

修改配置文件/app/apache-config/httpd.conf

Listen 18001 //默认为80, 只有root用户能够启动,将其改为1024之后的数字,可以由hadoop用户启动
ServerName GBD-VM01 
<FilesMatch \.php$> 
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>

创建/app/ApacheInstall/httpd-2.4.7/到/app/apache的链接

修改组属

chown -R hadoop:hadoop /app/ApacheInstall /app/apache /app/apache-config

在浏览器中输入 http://ip(安装机器ip) 进行测试,出现It works!字样,说明安装成功

可将/app/ApacheInstall/httpd-2.4.7/bin/apachetcl拷贝到/usr/sbin目录下,方便进行apache的启动和关闭

apachetcl -k start|restart|stop

三、php安装

从官网( http://www.php.net/ )下载安装源码包,解压,编译,安装

tar -zxvf php-5.5.7.tar.gz
cd php-5.5.7
./configure --with-apxs2=/app/apache/bin/apxs ##will install the mod_php for apache
make && make install

起初使用yum安装了php,但是在apache中却无法解析php文件,多番找原因,无果,之后使用源码进行编译安装

php配置

cp php.ini-production /usr/local/lib/php.ini; 
vi2 php.ini session.save_path = "/usr/local/lib/php/session" date.timezone = "PRC";
mkdir /usr/local/lib/php/session;
chmod 755 /usr/local/lib/php;
chown -R hadoop:hadoop /usr/local/lib/php/session

四、Ganglia安装

4.1 Gmetad源码安装

从官网( http://ganglia.info/ )下载Ganglia源码包,解压,编译,安装

make && make install

安装过程中可能出现以下错误

Checking for apr
Added -I/usr/local/apr//include to CFLAGS
Added -L/usr/local/apr//lib64 to LDFLAGS
checking for apr_socket_send in -lapr-1... no
libapr not found

经检查,apr已安装,只是路径有偏差,故使用mv /usr/local/apr/lib /usr/local/apr/lib64,暂时解决问题

libtool: compile: gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I.. -I. -I../include/ -D_LARGEFILE64_SOURCE -DSFLOW -DSYSCONFDIR="/app/ganglia-config" -g -O2 -I/usr/local/rrdtool//include -I/usr/local/apr//include -fno-strict-aliasing -Wall -D_REENTRANT -MT ganglia.lo -MD -MP -MF .deps/ganglia.Tpo -c ganglia.c -fPIC -DPIC -o .libs/ganglia.o
ganglia.c:8:19: 错误:expat.h:没有那个文件或目录

 

经检查,expat.h文件存在,只是路径有偏差,故使用cp /usr/local/apr/include/apr-1/* /usr/local/apr/include 暂时解决问题

修改/app/ganglia-config/gmetad.conf中的配置项

data_source "hadoop-core DEV" 192.168.1.101:8649 192.168.1.102:8649 192.168.1.103:8649 192.168.1.104:8649
setuid_username "hadoop"
rrd_rootdir "/app/ganglia/rrds"

创建/app/GangliaInstall/ganglia-3.6.0/到/app/ganglia的链接

ln -s /app/GangliaInstall/ganglia-3.6.0/ /app/ganglia

修改组属

chown -R hadoop:hadoop /app/GangliaInstall/ /app/ganglia /app/ganglia-config

可将/app/ganglia/sbin/gmetad拷贝到/usr/bin,便于使用

可用gmetad -d 5 进行运行测试

启动gmetad:gmetad

在启动过程中可能出现找不到连接库的问题,可通过ldd $(which /usr/bin/gmetad) 检查依赖包是否都能找到,若有找不到的依赖包,可使用find / -name 依赖包名 命令查找依赖包,并将其链接到/lib64/目录下

4.2 Gmond源码安装

从官网下载Ganglia源码包,解压,编译,安装

./configure --prefix=/app/GangliaInstall/ganglia-3.6.0/ --with-librrd=/usr/local/rrdtool/ --with-libexpat=yes --with-libconfuse=yes --with-python=yes --with-libpcre=yes --with-libapr=/usr/local/apr/ --enable-gexec --enable-status --sysconfdir=/app/ganglia-config/
make && make install

修改/app/ganglia-config/gmetad.conf中的配置项

globals {
daemonize = yes
setuid = yes
user = hadoop
……
}
cluster {
name = "hadoop-core DEV"
owner = "hadoop"
latlong = "unspecified"
url = "unspecified"
}

创建/app/GangliaInstall/ganglia-3.6.0/到/app/ganglia的链接

ln -s /app/GangliaInstall/ganglia-3.6.0/ /app/ganglia

修改组属

chown -R hadoop:hadoop /app/GangliaInstall/ /app/ganglia /app/ganglia-config

可将/app/ganglia/sbin/gmond拷贝到/usr/bin,便于使用

可用gmond -d 5 进行运行测试

启动gmond:gmond

在启动了gmond之后,发现并没有rrd文件生成,之后使用gmond -d 5进行测试,测试过程中可能会出现以下错误:Error creating multicast server mcast_join=239.2.11.71 port=8649 mcast_if=NULL family='inet4'. Will try again...,系统不支持多播,需要将多播ip地址加入路由表,使用route add -host 239.2.11.71 dev eth0命令即可,将该命令加入/etc/rc.d/rc.local文件中,一劳永逸

4.3 Ganglia Web 安装

从官网下载Ganglia-web包,解压

tar -zxvf ganglia-web-3.5.11.tar.gz
mkdir /app/apache/htdocs/ganglia
cp -r ganglia-web-3.5.11/* /app/apache/htdocs/ganglia/

修改配置conf.php

cp conf-default.php conf.php
vi conf.php
$conf['gweb_confdir'] = "/app/apache/htdocs/ganglia";
$conf['gmetad_root'] = "/app/ganglia";
$conf['rrdtool'] = "/usr/bin/rrdtool";
$conf['case_sensitive_hostnames'] = false; // 如果主机名中有大写字符,一定要将其选项设置为false,否则在页面中会显示No match metrics delected or rrds not readable,因为ganglia在保存rrd文件时,主机名的目录都是小写的

重启apache

apachetcl -k restart

在浏览器中输入 http://192.168.1.101:18001/ganglia进行查看

五、hadoop集群配置

修改配置文件/app/hadoop-config/hadoop-metrics2.properties

*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
namenode.sink.ganglia.servers=ip:8649
datanode.sink.ganglia.servers=ip:8649
jobtracker.sink.ganglia.servers=ip:8649
tasktracker.sink.ganglia.servers=ip:8649
maptask.sink.ganglia.servers=ip:8649
reducetask.sink.ganglia.servers=ip:8649

重启hadoop

posted on 2015-03-19 15:34  逸云丫丫  阅读(954)  评论(0编辑  收藏  举报