您的位置:首页 > 运维架构

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

2014-03-21 17:22 931 查看
安装前提条件:
1.JDK的版本1.6或者更高版本2.hadoop的版本Hadoop0.20.205.1及以上版本3.HBase0.90.4版本以支持HICC
安装步骤如下:
1.下载chukwahttp://labs.renren.com/apache-mirror/incubator/chukwa/chukwa-0.5.0/上下载如下的两个文件:chukwa-incubating-0.5.0.tar.gzchukwa-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_HOMEvi /etc/profileexport 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 0addSocketAdaptor HadoopMetrics 9095 0addSocketAdaptor Hadoop 9096 0addSocketAdaptor ChukwaMetrics 9097 0addSocketAdaptor 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的classpathexportPIG_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.启动HICCbin/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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: