7.配置Agent
(1)配置$CHUKWA_HOME/conf/initial_adaptors
cp initial_adaptors.template initial_adaptors
(2)配置$CHUKWA_HOME/conf/chukwa-agent-conf.xml
(我只列出我修改的地方)
<property>
<name>chukwaAgent.tags</name>
<value>cluster="zlhchukwa"</value>
<description>The cluster's name for this agent</description>
</property>
(3)配置$CHUKWA_HOME/conf/agents文件,我的配置如下所示:
gd115
gd116
gd117
(4)配置$CHUKWA_HOME/conf/Collectors文件,我的配置如下:
:9927/
(注:从这个地方可以看出来Collectors和agents是通过http进行联系的,此处最好要用ip,不要用其他代号,因为可能访问不到)
(5)测试启动agents看每个节点上的agent否启动成功
执行$CHUKWA_HOME/bin/ start-agents.sh
此时应该会在各个节点上通过jps可以看到有一个进程叫做ChukwaAgent,
可以试着telnet localhost 9093 然后list看一下各个adaptor是否启动
(6)关闭agents
执行$CHUKWA_HOME/bin/stop-agents.sh,
假如关闭不了ChukwaAgent进程可以修改$CHUKWA_HOME/bin/chukwa文件
找到关键字kill 然后将后面的数值改成kill -9
(7)在关闭Hadoop的状态下,将$CHUKWA_HOME/conf/hadoop-logs4j.properties覆盖
$HADOOP_HOME/conf/log4j.properties
修改$CHUKWA_HOME/conf/hadoop-metrics.properties中的@TODO-CHUKWA_LOG_DIR@改为:
/home/zhangliuhang/chukwa/logs/,然后将该文件覆盖掉
$HADOOP_HOME/conf/hadoop-metrics.properties
在做这一步的时候最好将原文件进行备份
(正确的启动顺序是先启动hadoop,再启动collectors,然后才启动agents,在做完第(6)小步后,假如此时启动hadoop,会发现他可能报错,假如只出现以下出错信息:
Error initializing ChukwaClient with list of currently registered adaptors,clearing our local list of adaptors,可以置之不理的,但是其他错误不行)
8.配置Collectors
(1)配置$CHUKWA_HOME/conf/chukwa-collector-conf.xml文件,我的配置如下:
(我只给出了我修改的部分)
<property>
<name>writer.hdfs.filesystem</name>
<value>hdfs://gd115:9989/</value>
<description>HDFS to dump to</description>
</property>
(注意,此处配置的信息应该和$HADOOP_HOME/conf/core-site.xml当中的fs.default.name内容一致,因为collectors需要将从agents收集到的信息存储到hdfs上面去)
<property>
<name>chukwaCollector.outputDir</name>
<value>/chukwa/logs/</value>
<description>Chukwa data sink directory</description>
</property>
(注意,此配置强烈要求不要更改,这个目录是collectors写到hdfs上面的目录,假如这个目录变了,那么会导致后面的一些进程找不到hdfs上/chukwa/logs当中的信息,从而无法生成分析的数据流,当然假如对chukwa熟悉的人也可以改,但是我不建议这么做!)
<property>
<name>chukwaCollector.http.port</name>
<value>9927</value>
<description>The HTTP port number the collector will listen on</description>
</property>
(注意,这个地方的端口号要和collectors文件当中的保持一致!)
(2)测试collectors,agents,hadoop
先启动hadoop,在动collectors,最后启动agent,命令如下:
$HADOOP_HOME/bin/start-all.sh
(假如只是报”Error initializing ChukwaClient with list of currently registered adaptors, clearing our local list of adaptors”这个错误可以不管)
$CHUKWA_HOME/bin/start-collectors.sh
$CHUKWA_HOME/bin/start-agents.sh
检查四个地方:
(a)通过jps看是否有相应的节点上是否有相应的进程,其中agent进程对应ChukwaAgent,collector进程对应CollectorStub
(b)查看$CHUKWA_HOME/logs/agent.log及$CHUKWA_HOME/logs/collector.log,看他们是否正常
(c)通过网络web访问查看是否显示正常,结合我之前的配置,检查collector时网址中输入:9927/可以看到显示:”Chukwa servlet running”,若检查agent,在网址中输入:9093
(d)查看hdfs上是否生成了相应的文件$HADOOP_HOME/bin/hadoop dfs -ls /理论上应该hdfs上会有/chukwa/logs目录生成