雄关漫道真如铁,而今迈步从头越。
全部博文(348)
分类: HADOOP
2015-05-27 11:58:10
Chukwa是Yahoo开发的一个开源的用于监控大型分布式系统的数据收集系统。它构建在hadoop的hdfs map/reduce框架之上,继承了hadoop的可伸缩性和鲁棒性。Chukwa还包含了一个强大和灵活的工具集,可用于展示、监控和分析已收集的数据。当我们在管理和维护超过100个节点的集群时如何实时有效、轻松的监控各个集群节点的健康状况及自身的相关信息呢?而Chukwa为我们提供了一种简单可行的方案。
所以下面我们具体讲解一下如何安装配置Chukwa分布式监控系统的方法与步骤。
一、先决条件
1.hadoop已经安装配置完成且运行正常
二、去官网上下载chukwa并解压到/home/chukwa路径下
##
##tar -zxvf chukwa-0.4.0.tar.gz
三、配置各个节点的环境变量vi .bash_profile:
export JAVA_HOME=/usr/java/jdk1.6.0_16
export JRE_HOME=/usr/java/jdk1.6.0_16/jre
export HADOOP_VERSION=0.20.2
export HADOOP_HOME=/home/hadoop/hadoop-${HADOOP_VERSION}
export CHUKWA_HOME="/home/chukwa/"
export ANT_HOME=/usr/ant/ant-1.7.0
export PATH=.:$PATH: $JAVA_HOME/bin:$HADOOP_HOME/bin:$CHUKWA_HOME/bin:$ANT_HOME/bin
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib:$ANT_HOME/lib:$HADOOP_HOME/hadoop-${HADOOP_VERSION}-core.jar:$HADOOP_HOME/lib/*:$HADOOP_HOME/lib/commons-logging-1.0.4.jar:$ANT_HOME/junit-3.8.1.jar:$HADOOP_HOME/ivy/ivy-2.0.0-rc2.jar:$HADOOP_HOME/lib/commons-logging-api-1.0.4.jar:$HADOOP_HOME/lib/log4j-1.2.15.jar:$HADOOP_HOME/lib/hadoop-lzo-0.4.8.jar
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/home/hadoop/hadoop-0.20.2/lib/native/Linux-amd64-64
export JAVA_LIBRARY_PATH=/home/hadoop/hadoop-0.20.2/lib/native/Linux-amd64-64
export javalibpath=/home/hadoop/hadoop-0.20.2/lib/native/Linux-amd64-64
四、配置$CHUKWA_HOME/conf/chukwa-env.sh文件
export JAVA_HOME=/usr/java/jdk1.6.0_16
export HADOOP_HOME="/home/hadoop/hadoop-0.20.2"
export HADOOP_CONF_DIR="/home/hadoop/hadoop-0.20.2/conf/"
export HADOOP_JAR=${HADOOP_HOME}/hadoop-0.20.2-core.jar
export chukwaRecordsRepository="/chukwa/repos/"
export CHUKWA_DATA_DIR="${CHUKWA_HOME}/data"
export CHUKWA_IDENT_STRING=chukwa
export JAVA_PLATFORM= Linux-amd64-64
export JAVA_LIBRARY_PATH=${HADOOP_HOME}/lib/native/${JAVA_PLATFORM}
export JDBC_DRIVER=com.mysql.jdbc.Driver
export JDBC_URL_PREFIX=jdbc:mysql://
export CHUKWA_HICC_MIN_iMEM=300M
export CHUKWA_HICC_MAX_MEM=300M
五、将必要的库从$CHUKWA_HOME/和$CHUKWA_HOME/lib拷贝到$HADOOP_HOME/lib
cp hukwa-agent-0.4.0.jar chukwa-hadoop-0.4.0-client.jar tools-0.4.0.jar,json.jar $HADOOP_HOME/lib
六、配置Agent
(1)配置$CHUKWA_HOME/conf/initial_adaptors
cp initial_adaptors.template initial_adaptors
(2)配置$CHUKWA_HOME/conf/chukwa-agent-conf.xml
(3)配置$CHUKWA_HOME/conf/agents文件,我的配置如下所示:
gd110
gd111
gd112
(4)配置$CHUKWA_HOME/conf/Collectors文件,我的配置如下:
(5)测试启动agents看每个节点上的agent否启动成功
执行$CHUKWA_HOME/bin/ start-agents.sh
此时应该会在各个节点上通过jps可以看到有一个进程叫做ChukwaAgent,
可以试着telnet localhost 9093是否能够成功telnet
(6)关闭agents
执行$CHUKWA_HOME/bin/stop-agents.sh,
(7)在关闭hadoop的状态下,将$CHUKWA_HOME/conf/hadoop-logs4j.properties覆盖
$HADOOP_HOME/conf/log4j.properties
修改$CHUKWA_HOME/conf/hadoop-metrics.properties中的TODO-CHUKWA_LOG_DIR修改为:/home/chukwa/logs/
8.配置Collectors
七、配置$CHUKWA_HOME/conf/chukwa-collector-conf.xml文件,我的配置如下:
##此处配置的信息应该和$HADOOP_HOME/conf/core-site.xml当中的fs.default.name内容一致,因为collectors需要将从agents收集到的信息存储到hdfs上面去
##这个地方的端口号要和collectors文件当中的保持一致
(2)测试collectors,agents,hadoop
先启动hadoop,在动collectors,最后启动agent,命令如下:
$HADOOP_HOME/bin/start-all.sh
$CHUKWA_HOME/bin/start-collectors.sh
$CHUKWA_HOME/bin/start-agents.sh
检查一下内容,确认chukwa正常启动:
(a)通过jps看是否有相应的节点上是否有相应的进程,其中agent进程对应ChukwaAgent,collector进程对应CollectorStub
(b)查看$CHUKWA_HOME/logs/agent.log及$CHUKWA_HOME/logs/collector.log,看他们是否正常
(c)通过网络web访问查看是否显示正常,结合我之前的配置,检查collector时网址中输入可以看到显示:”Chukwa servlet running”,若检查agent,在网址中输入
(d)查看hdfs上是否生成了相应的文件$HADOOP_HOME/bin/hadoop dfs -ls /理论上应该hdfs上会有/chukwa/logs目录生成
八、配置Demux
(1)运行processor
$CHUKWA_HOME/bin/start-data-processors.sh
##开始运行后的直接效果是jps多出3个进程,分别是PostProcessorManager,ChukwaArchiveManager,Demuxmanager
##同时通过查看hdfs,可以发现/chukwa/目录下多了好几目录,分别是/chukwa/archivesProcessing, /chukwa/dataSinkArchives,/chukwa/demuxProcessing,随着时间的增加,数据分析进行的深入,会在hdfs上##的/chukwa/目录下生成更多的目录,最终目录结构同http://incubator.apache.org/chukwa/docs/r0.4.0/dataflow.html
九、配置数据库
Chukwa0.4.0是通过将分析好的数据从hdfs上转储到mysql数据库中,然后通过hicc命令来进行图形化显示的,而对于chukwa0.5.0是通过hbase而非本地的mysql来处理的,所以对于chukwa0.4.0,我们还得装mysql数据库这里我把MySQL安装在了和Demux同一个节点之上,同理HICC也是运行在这个节点之上的
(1)从mysql官网上下载mysql
http://dev.mysql.com/downloads/mysql/5.1.html
(2)将该文件解压到$CHUKWA_HOME/opt/目录下,后面我用$MYSQL_HOME代表mysql所在目录
(3)我给系统添加一个mysql用户:useradd mysql
(4)安装MySQL数据库
cd $MYSQL_HOME
./scripts/mysql_install_db
./bin/mysqld_safe &
./bin/mysqladmin –u root create zlhchukwa
./bin/mysql –u root zlhchukwa<$CHUKWA_HOME/conf/database_cerate_tables.sql
##进入到数据库当中检查是否在数据库当中建了一个叫做的zlhchukwa的database,并且在该database当中是否产生了一些tables
(5)配置$CHUKWA_HOME/conf/jdbc.conf文件,
fzhchukwa=jdbc:mysql://localhost:3306/zlhchukwa?user=root
(6)启动进程将数据从hdfs下载到数据库
在装有数据库的那个非namenode节点上,运行$CHUKWA_HOME/bin/dbAdmin.sh
##在chukwa0.4.0当中是没有这个脚本的,我是从chukwa0.3.0的bin目录上面弄过来的
十、运行hicc进行图形化查看
$CHUKWA_HOME/bin/chukwa hicc