hadoop集群里数据收集工具Chukwa的安装详细步骤

安装前提条件:

1.JDK的版本1.6或者更高版本

2.hadoop的版本Hadoop0.20.205.1及以上版本

3.HBase0.90.4版本以支持HICC


安装步骤如下:


1.下载chukwa

http://labs.renren.com/apache-mirror/incubator/chukwa/chukwa-0.5.0/上下载如下的两个文件:

chukwa-incubating-0.5.0.tar.gz

chukwa-incubating-src-0.5.0.tar.gz

将如上的两个gz文件进行解压缩


2.安装chukwa

将chukwa-incubating-src-0.5.0下的conf目录和script目录拷贝到chukwa-incubating-0.5.0目录下,并将chukwa-incubating-0.5.0重命名为chukwa


3.添加CHUKWA_HOME

vi /etc/profile

export CHUKWA_HOME=/home/zhangxin/chukwaexport CHUKWA_CONF_DIR=$CHUKWA_HOME/conf


4.配置chukwa

修改etc/chukwa/chukwa-env.sh文件中的JAVA_HOME属性,使其指向正确的java安装目录

export JAVA_HOME=/home/zhangxin/jdk1.6

修改etc/chukwa/chukwa-env.sh中的CHUKWA_LOG_DIR and CHUKWA_PID_DIR两个属性,这两个属性分别用于定义存放Chukwa的日志文件和pid文件的目录,默认的属性值如下:

# The directory where pid files are stored. CHUKWA_HOME/var/run by default.
export CHUKWA_PID_DIR=/tmp/chukwa/pidDir
# The location of chukwa logs, defaults to CHUKWA_HOME/logs
export CHUKWA_LOG_DIR=/tmp/chukwa/log

注意的是 CHUKWA_PID_DIR目录不能被多个Chukwa实例来共享,而且它应该保存在本地磁盘中。


5.Agent信息配置

修改$CHUKWA_HOME/etc/chukwa/collectors,该文件保存了用于运行Chukwa collectors的主机列表。Agent从这些主机列表中随机的选择一个,然后将收集到的信息发送给它。文件的内容格式如下:

http://<collector1HostName>:<collector1Port>/

http://<collector2HostName>:<collector2Port>/

http://<collector3HostName>:<collector3Port>/

默认文件的内容只有localhost

编辑CHUKWA_HOME/etc/chukwa/initial_adaptors 配置文件,该文件保存了Chukwa默认的Adapter的类型,文件的内容如下:

addsigar.SystemMetrics SystemMetrics 60 0

addSocketAdaptor HadoopMetrics 9095 0

addSocketAdaptor Hadoop 9096 0

addSocketAdaptor ChukwaMetrics 9097 0

addSocketAdaptor JobSummary 9098 0

修改$CHUKWA_HOME/etc/chukwa/chukwa-agent-conf.xml

此配置文件中的内容默认都可以不需要修改就行,但是有一个属性很重要,它定义了Agent所在的集群的名称:

<property>

<name>chukwaAgent.tags</name>

<value>cluster="demo"</value>

<description>The cluster's name for this agent</description>

</property>

启动Agent

使用bin/chukwaagent启动,但是这里会出现两个问题:首先我如果直接进入到bin目录下,然后运行./chukwaagent命令,此时会出现路径错误的异常;另外一个问题就是,当我不是以root的身份登录linux系统时,直接运行上面的命令会出现如下的异常情况:

java.io.FileNotFoundException: /agent.log (Permission denied)

atjava.io.FileOutputStream.openAppend(Native Method)

atjava.io.FileOutputStream.<init>(FileOutputStream.java:192)

atjava.io.FileOutputStream.<init>(FileOutputStream.java:116)

atorg.apache.log4j.FileAppender.setFile(FileAppender.java:294)

该异常表明当前的用户没有权限来打开agent.log文件,所以应该以如下的命令来运 行:

sudo bin/chukwaagent

sudo bin/start-agents.sh来使用SSH登录到 etc/chukwa/agents文件中列出的所有的agent所在的主机来启动Agent后台进程。

为了检查Agent是否成功,运行telnet localhost 9093命令,然后再运行list看能否可以在命令行看到一些提示信息。


6.修改被Chukwa监控的hadoop集群的配置信息:

将CHUKWA_HOME/etc/chukwa/hadoop-log4j.properties下的文件复制到hadoop的conf目录下,并重命名为log4j.properties

将$CHUKWA_HOME/etc/chukwa/hadoop-metrics2.properties复制到hadoop的conf目录下,并保持原文件的名称

$CHUKWA_HOME/share/chukwa/chukwa-0.5.0-client.jar复制到hadoop的lib目录下面

将$CHUKWA_HOME/share/chukwa/lib/json-simple-1.1.jar复制到hadoop的lib目录下面

将$CHUKWA_HOME/share/chukwa/lib/chukwa-0.5.0.jar复制到hadoop的lib目录下面

如果上面的jar包没在$CHUKWA_HOME/share/chukwa/lib目录下,那么需要到最先下载的chukwa-incubating-src-0.5.0.tar.gz文件夹下找到相应的jar包。


7.启用HBase

在HBase中创建相应的表

hbase shell < etc/chukwa/hbase.schema


8.配置Collector信息:

编辑$CHUKWA_HOME/etc/chukwa/chukwa-env.sh

修改HADOOP_CONF_DIRand HBASE_CONF_DIR属性信息,这两个信息都是提前在/etc/profile中定义好的。

编辑$CHUKWA_HOME/etc/chukwa/chukwa-collector-conf.xml,我们直到Collector可以将收集到的信息保存在HBase中和HDFS中,所以相应的配置信息也会有两个,如下:

使用HBase作为存储介质:

<property>

<name>chukwaCollector.writerClass</name><value>org.apache.hadoop.chukwa.datacollection.writer.PipelineS tageWriter</value>

</property>

<property>

<name>chukwaCollector.pipeline</name><value>org.apache.hadoop.chukwa.datacollection.writer.hbase.HBaseWriter</value>

</property>

使用HDFS做为存储介质

启动Collector:

bin/chukwa collector或者bin/start-collectors.sh

通过http://collectorhost:collectorport/chukwa?ping=true来查看,collector是否启动正常。


9.可选的ETL过程:

bin/chukwa archivesudo bin/chukwa demux


10.启动集群的AggregationScript(PIG脚本),所以PIG需要提前配置好。

在etc/profile中定义好pig的classpath

exportPIG_CLASSPATH=$HADOOP_CONF_DIR:$HBASE_CONF_DIR

创建如下的jar包

jar cf $CHUKWA_HOME/hbase-env.jar $HBASE_CONF_DIR

启动如下的pig脚本:

pig -D pig.additional.jars=${HBASE_HOME}/hbase-0.90.4.jar:${HBASE_HOME}/lib/zookeeper-3.3.2.jar:${PIG_PATH}/pig.jar:${CHUKWA_HOME}/hbase-env.jar ${CHUKWA_HOME}/script/pig/ClusterSummary.pig

为了保证上面的脚本能够正常运行,一定要将hbase相应的jar包和zookeeper相应的jar包(在hbase的lib下)以及pig相应的jar包添加到classpath中。


11.启动HICC

bin/chukwa hicc

使用http://<server>:4080/hicc进行验证,默认的用户名和密码都是admin


注意:

通过上面配置之后,重启hadoop:

start-all.sh出现如下的异常log4j:ERRORCould not connect to remote log4j server at [localhost]. We will tryagain later.

这是因为,需要将hadoop的日志通过socket发送给相应的Agent,所以我们首先需要启动Agent。

你可能感兴趣的:(hadoop集群里数据收集工具Chukwa的安装详细步骤)