`
SavageGarden
  • 浏览: 219884 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

将Chukwa 0.5部署在基于Cloudera CDH4的Hadoop集群上

 
阅读更多

一、使用maven构建基于chukwa 0.5的项目

 

    使用nexus搭建了maven私服,此时如果使用maven构建chukwa 0.5版本时可能在以下两个依赖项遇到问题

 

    thrift-0.2.0.jar

    hadoop-core-0.20-append-r1056497.pom

 

    这是因为chukwa0.5版本在pom文件中依赖了hbase0.90.4版,而此版本的hbase又依赖了以上两个比较低的版本(见hbase 0.90.4的pom文件)

 

 

 

 

<repositories>
    <repository>
      <id>temp-thrift</id>
      <name>Thrift 0.2.0</name>
      <url>http://people.apache.org/~rawson/repo/</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <enabled>true</enabled>
      </releases>
    </repository>
    ......
</repositories>
......
<properties>
    <hadoop.version>0.20-append-r1056497</hadoop.version>
</properties>

 

 

    解决此问题需要修改maven的配置文件,将私服镜像的配置暂时注释掉,使其可以按照pom文件中指明的url下载相应的文件

 

<mirror>
    <id>nexus</id>
    <name>nexus</name>
    <mirrorOf>*</mirrorOf>
    <url>http://localhost:8081/nexus/content/groups/public</url>
</mirror>

 

 

 

    构建成功后可以将下载好的相关文件提交到私服

    将编程成功的chukwa 0.5的jar提交到私服,其中相关项目的pom文件可以添加如下依赖

 

 

 

<dependency>
	<groupId>org.apache.incubator</groupId>
	<artifactId>chukwa</artifactId>
	<version>0.5.0</version>
</dependency> 

 

 

二、基于Chukwa 0.5实现自己的日志收集机制

 

    chukwa本身的日志收集机制因为要提供对hadoop集群的性能分析,所以其策略是

    a. 将agent提交的数据使用SeqFileWriter将其构建成以ChukwaArchiveKey为key、以ChunkImpl为value的键值对写入同一个.chukwa文件,完成后改名为.done文件

    b. demux进程执行mapreduce过程将.done文件分类

    c. db进程将demux分类后的文件转储到相应的日期、小时目录下

    d. rolling进程将每个小时、每天目录下的碎小文件合并成一个大文件

 

    这样便于其分类、去重、排序、合并,方便为其hicc组件提供近似实时分析的日志支持。

    但是这里有两个弊端:

    a. agent提交的数据转换为ChukwaArchiveKey、ChunkImpl键值对后,最终分类、合并后的.evt文件大小要比原始日志大小增加几倍

    b. 经过demux、db、rolling进程的处理需要消耗一定时间

 

    其实对于大多数的日志收集功能:实时性、完整性、稳定性这些基本的功能就足够了。

    因此,可以编写自己的Writer以简化收集过程。

    比如:

    a. 将agent提交的数据写入dataType+date+hour.chukwa的文件中,如果此文件不存在则调用

FileSystem的create(Path)方法返回输出流,否则调用append(Path)返回数据流

    (注意:要想成功使用append(Path)方法需要在hdfs-site.xml中添加dfs.support.append配置项,设置其值为true)

    b. 定时检测,如果当前时间(小时)已经和正在写的.chukwa文件中的时间(小时)不一致,则将.chukwa文件改名为.done文件

 

    这样得到的.done文件即为一个小时内的日志,而且已经进行了分类,可直接对其进行分析或导入hive

 

三、将Chukwa 0.5部署到基于Cloudera CDH4的Hadoop集群

 

 

    chukwa 0.5基于hadoop 1.0版,但因为hdfs的API在1.0版与0.23版之间变化不大,因此可以将其部署在CDH4环境下,只不过因为mapreduce的API存在一定变化,因此demux、rolling进程可能会受到影响,但基于上面的步骤2,已经将chukwa的日志收集机制修改为只和hdfs的API相关,因此mapreduce不兼容的问题可以不用考虑。

    a. 删除$CHUKWA_HOME/share/chukwa/lib/hadoop-core-1.0.0.jar

    b. 复制

    $HADOOP_HOME/share/hadoop/common/hadoop-common-0.23.0-cdh4b1.jar

    $HADOOP_HOME/share/hadoop/hdfs/hadoop-hdfs-0.23.0-cdh4b1.jar

    到$CHUKWA_HOME/share/chukwa/lib/

    c. 复制

    $HADOOP_HOME/share/hadoop/common/lib/*.jar

    $HADOOP_HOME/share/hadoop/hdfs/lib/*.jar

    到

    $CHUKWA_HOME/share/chukwa/hadoop-common-lib/

    $CHUKWA_HOME/share/chukwa/hadoop-hdfs-lib/

 

  (这些都是hadoop-common、hadoop-hdfs依赖的 jar包)

 

    在$CHUKWA_HOME/libexec/chukwa-config.sh中添加依赖的jar包

    CHUKWA_CLASSPATH="${CHUKWA_HOME}/share/chukwa/*:${CHUKWA_HOME}/share/chukwa/lib/*:${CHUKWA_HOME}/share/chukwa/hadoop-common-lib/*:${CHUKWA_HOME}/share/chukwa/hadoop-hdfs-lib/*"

 

    d.

    删除$CHUKWA_HOME/share/chukwa/lib/protobuf-java-2.3.0.jar

    (与hadoop-common、hadoop-hdfs中的protobufjar包有冲突)

 

    这样既可在CDH4环境下继续使用chukwa收集日志。

 

matrix.lisp@gmail.com

 

分享到:
评论

相关推荐

    chukwa-incubating-src-0.5.0.tar.gz

    - Chukwa Agents:部署在数据生成节点上,负责将数据发送到Collectors。 2. **Chukwa的主要特点** - **可扩展性**:Chukwa设计时考虑了大型分布式环境的需求,能够处理大规模数据流。 - **实时性**:通过Chukwa...

    Hadoop集群搭建总结

    - **HDFS (Hadoop Distributed File System)**:这是一个分布式文件系统,设计用于在廉价硬件上部署,并具有高容错性和高吞吐量的特点。HDFS适用于存储大量数据集的应用场景。 - **MapReduce**:这是一种分布式数据...

    Hadoop chukwa

    它们通常部署在集群的边界节点上,将接收到的数据批量发送到HDFS,确保高吞吐量的数据传输。 4. HDFS:作为Hadoop的核心部分,HDFS提供了高度可靠的分布式存储。Chukwa将收集的数据存入HDFS,使得数据可以在Hadoop...

    chukwa-incubating-0.5.0.tar.gz -- part2

    chukwa0.5安装包(共2部分,这是第二部分) 官方资源已经无法下载,只有源码,有各种坑。 这个是真正的0.5-r3版安装包,可以正常使用。

    chukwa安装

    4. **配置**:在安装过程中,你需要配置Chukwa的相关配置文件,如`chukwa.conf`,确保与你的Hadoop集群配置相匹配。 5. **构建Chukwa**:从Chukwa的源代码仓库克隆或下载最新版本,然后使用Maven或其他构建工具进行...

    chukwa_cca08

    Chukwa在Hadoop集群中的应用极为广泛,主要体现在以下几个方面: - **实时监控**:通过实时收集和分析节点状态、任务执行情况等关键指标,Chukwa能够及时发现并预警潜在的系统问题。 - **历史数据分析**:对于长期...

    Apache Hadoop---Chukwa.docx

    而Apache Chukwa作为Hadoop的扩展,专为监控大型分布式系统而设计,特别是在Hadoop集群环境中,它扮演着至关重要的角色。 Chukwa的核心功能在于数据收集、存储和分析,以确保对大规模Hadoop集群的健康状况有深入的...

    Hadoop状态分析系统Chukwa.pdf

    Hadoop本身是一个广泛应用于大数据处理的分布式存储和计算框架,而Chukwa则是在Hadoop之上构建的,旨在解决大规模集群的监控和分析问题。在使用Chukwa前,需要先搭建好Hadoop环境,因为Chukwa依赖于Hadoop的分布式...

    基于hadoop的云计算研究报告

    本节介绍如何在Windows主机上配置Hadoop环境,以支持Linux虚拟机上的操作。 - **所需环境**: 1. 三台PC,每台均安装Windows操作系统。 2. Linux虚拟机,建议使用Ubuntu 8.04。 3. VMware Workstation v5.0。 4...

    Hadoop状态分析系统Chukwa.docx

    在实际应用中,Chukwa常用于大型企业或组织的Hadoop集群,帮助他们管理和优化分布式系统的性能。通过收集和分析系统日志、监控资源使用情况、识别潜在问题,Chukwa使得运维人员能够更好地理解和控制复杂的分布式环境...

    chukwa-incubating-0.5.0.tar.gz -- part1

    chukwa0.5安装包(共2部分,这是第一部分) 官方资源已经无法下载,只有源码,有各种坑。 这个是真正的0.5-r3版安装包,可以正常使用。

    hadoop+zookeeper+hbase集群搭建配置说明

    在Hadoop集群中,Zookeeper通常用于管理NameNode的元数据、HBase的区域服务器分配以及Chukwa等监控工具的协调。配置Zookeeper时,我们需要设定集群的ensemble(集群节点集合),并配置每个节点的客户端连接端口、...

    烟草企业基于Hadoop的数据处理研究.pdf

    Hadoop是一个开源分布式计算平台,具有高容错性、高伸缩性等优点,允许用户将Hadoop部署在低廉的PC上,充分利用集群的计算和存储能力,完成海量数据的处理。 二、Hadoop平台技术架构 Hadoop平台架构主要包括分布式...

    Hadoop云计算平台搭建最详细过程(共22页).pdf

    1. 安装环境简介:Hadoop云计算平台支持Linux和Windows平台,推荐在Linux平台上安装,.Windows平台需要安装Cygwin来模拟UNIX环境。 2. 安装步骤: (1)下载和安装JDK,版本为jdk-7u51-linux-x64.tar.gz。 (2)创建...

    Hadoop云计算平台搭建最详细过程共.pdf

    Hadoop 云计算平台可以在 Linux 主机集群系统上得到验证,而 Windows 平台是作为开发平台支持的。由于分布式操作尚未在 Windows 平台上充分测试,所以还不作为一个生产平台。在 Windows 下还需要安装 Cygwin,Cygwin...

    基于Hadoop的大数据应用分析.pptx

    Chukwa 是基于 Hadoop 的集群监控系统,由 yahoo 贡献。Hive 是基于 Hadoop 的一个工具,提供完整的 sql 查询功能,可以将 sql 语句转换为 MapReduce 任务进行运行。ZooKeeper 是高效的,可扩展的协调系统,存储和...

    Hadoop概述&集群搭建.md

    - **面对海量数据的解决方案**:Hadoop采用分布式处理的方法,通过将数据分割并在多台机器上进行处理,提高了处理效率。 - **Hadoop优点**: - **成本效益**:使用普通商用硬件降低成本。 - **弹性扩展**:易于...

    大数据云计算技术 淘宝网Hadoop与数据分析 taobao数据团队(共30页).ppt

    本篇将深入探讨Hadoop这一大数据处理框架在淘宝网中的应用,以及其在数据分析领域的实践。 一、Hadoop基本概念 Hadoop是Apache基金会开发的一个开源项目,主要用于大规模数据集的分布式计算。其主要包含两个核心...

    chukwa-src-0.8.0.tar

    1. Collector:这是Chukwa的核心组件之一,负责接收来自Agent的数据,并将它们持久化到Hadoop的HDFS(Hadoop Distributed File System)上,以便后续处理和分析。 2. Agent:部署在各个分布式系统节点上,Agent负责...

Global site tag (gtag.js) - Google Analytics