Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5556555
  • 博文数量: 348
  • 博客积分: 2173
  • 博客等级: 上尉
  • 技术积分: 7900
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-24 17:26
个人简介

雄关漫道真如铁,而今迈步从头越。

文章存档

2022年(4)

2020年(6)

2019年(2)

2018年(2)

2017年(34)

2016年(49)

2015年(53)

2014年(47)

2013年(72)

2012年(79)

分类: 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
   
      chukwaAgent.tags
      cluster="fzhchukwa"
      The cluster's name for this agent
  

(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文件,我的配置如下:

    writer.hdfs.filesystem
    hdfs://gd115:9989/
    HDFS to dump to

##此处配置的信息应该和$HADOOP_HOME/conf/core-site.xml当中的fs.default.name内容一致,因为collectors需要将从agents收集到的信息存储到hdfs上面去

    chukwaCollector.outputDir
    /chukwa/logs/
    Chukwa data sink directory
 


    chukwaCollector.http.port
    9927
    The HTTP port number the collector will listen on
 

##这个地方的端口号要和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文件,
   =jdbc:mysql://localhost:3306/?user=root
    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
      

阅读(4312) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~