一、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