`
xiaobian
  • 浏览: 589066 次
  • 来自: 北京
社区版块
存档分类
最新评论

Hadoop 状态分析系统Chukwa

阅读更多

http://hi.baidu.com/ops_bd/blog/item/5f39abde48a10f3f10df9b12.html

 

 

Apache 的开源项目 hadoop, 作为一个分布式存储和计算系统,已经被业界广泛应用。很多大型企业都有了各自基于 hadoop 的应用和相关扩展。当 1000+ 以上个节点的 hadoop 集群变得常见时,集群自身的相关信息如何收集和分析呢?针对这个问题, Apache 同样提出了相应的解决方案,那就是 chukwa。

 

概述 
chukwa 的官方网站是这样描述自己的: chukwa 是一个开源的用于监控大型分布式系统的数据收集系统。这是构建在 hadoop 的 hdfs 和 map/reduce 框架之上的,继承了 hadoop 的可伸缩性和鲁棒性。Chukwa 还包含了一个强大和灵活的工具集,可用于展示、监控和分析已收集的数据。
在一些网站上,甚至声称 chukwa 是一个“日志处理/分析的full stack solution”。

说了这么多,你心动了吗?
我们先来看看 chukwa 是什么样子的: 



  
 

chukwa 不是什么
1. chukwa 不是一个单机系统. 在单个节点部署一个 chukwa 系统,基本没有什么用处. chukwa 是一个构建在 hadoop 基础上的分布式日志处理系统.换言之,在搭建 chukwa 环境之前,你需要先构建一个 hadoop 环境,然后在 hadoop 的基础上构建 chukwa 环境,这个关系也可以从稍后的 chukwa 架构图上看出来.这也是因为 chukwa 的假设是要处理的数据量是在 T 级别的.
2. chukwa 不是一个实时错误监控系统.在解决这个问题方面, ganglia,nagios 等等系统已经做得很好了,这些系统对数据的敏感性都可以达到秒级. chukwa 分析的是数据是分钟级别的,它认为像集群的整体 cpu 使用率这样的数据,延迟几分钟拿到,不是什么问题.
3. chukwa 不是一个封闭的系统.虽然 chukwa 自带了许多针对 hadoop 集群的分析项,但是这并不是说它只能监控和分析 hadoop.chukwa 提供了一个对大数据量日志类数据采集、存储、分析和展示的全套解决方案和框架,在这类数据生命周期的各个阶段, chukwa 都提供了近乎完美的解决方案,这一点也可以从它的架构中看出来.

chukwa 是什么
上一节说了很多 chukwa 不是什么,下面来看下 chukwa 具体是干什么的一个系统呢?
具体而言, chukwa 致力于以下几个方面的工作:
1. 总体而言, chukwa 可以用于监控大规模(2000+ 以上的节点, 每天产生数据量在T级别) hadoop 集群的整体运行情况并对它们的日志进行分析
2. 对于集群的用户而言: chukwa 展示他们的作业已经运行了多久,占用了多少资源,还有多少资源可用,一个作业是为什么失败了,一个读写操作在哪个节点出了问题.
3. 对于集群的运维工程师而言: chukwa 展示了集群中的硬件错误,集群的性能变化,集群的资源瓶颈在哪里.
4. 对于集群的管理者而言: chukwa 展示了集群的资源消耗情况,集群的整体作业执行情况,可以用以辅助预算和集群资源协调.
5. 对于集群的开发者而言: chukwa 展示了集群中主要的性能瓶颈,经常出现的错误,从而可以着力重点解决重要问题.

基本架构
有了一个感性的认识后,我们来看下它的构架, chukwa 的整体结构图是下面这个样子的:
 


  

其中主要的部件为:
1. agents : 负责采集最原始的数据,并发送给 collectors
2. adaptor : 直接采集数据的接口和工具,一个 agent 可以管理多个 adaptor 的数据采集
3. collectors 负责收集 agents 收送来的数据,并定时写入集群中
4. map/reduce jobs 定时启动,负责把集群中的数据分类、排序、去重和合并
5. HICC 负责数据的展示

相关设计
adaptors 和 agents
在每个数据的产生端(基本上是集群中每一个节点上), chukwa 使用一个 agent 来采集它感兴趣的数据,每一类数据通过一个 adaptor 来实现, 数据的类型(DataType?)在相应的配置中指定. 默认地, chukwa 对以下常见的数据来源已经提供了相应的 adaptor : 命令行输出、log 文件和 httpSender等等. 这些 adaptor 会定期运行(比如每分钟读一次 df 的结果)或事件驱动地执行(比如 kernel 打了一条错误日志). 如果这些 adaptor 还不够用,用户也可以方便地自己实现一个 adaptor 来满足需求。

为防止数据采集端的 agent 出现故障,chukwa 的 agent 采用了所谓的 ‘watchdog’ 机制,会自动重启终止的数据采集进程,防止原始数据的丢失。
另一方面, 对于重复采集的数据, 在 chukwa 的数据处理过程中,会自动对它们进行去重. 这样,就可以对于关键的数据在多台机器上部署相同的 agent,从而实现容错的功能.
collectors
agents 采集到的数据,是存储到 hadoop 集群上的. hadoop 集群擅长于处理少量大文件,而对于大量小文件的处理则不是它的强项,针对这一点,chukwa 设计了 collector 这个角色,用于把数据先进行部分合并,再写入集群,防止大量小文件的写入。
另一方面,为防止 collector 成为性能瓶颈或成为单点,产生故障, chukwa 允许和鼓励设置多个 collector, agents 随机地从 collectors 列表中选择一个 collector 传输数据,如果一个 collector 失败或繁忙,就换下一个 collector. 从而可以实现负载的均衡,实践证明,多个 collector 的负载几乎是平均的.
demux 和 archive
放在集群上的数据,是通过 map/reduce 作业来实现数据分析的. 在 map/reduce 阶段, chukwa 提供了 demux 和 archive 任务两种内置的作业类型.
demux 作业负责对数据的分类、排序和去重. 在 agent 一节中,我们提到了数据类型(DataType?)的概念.由 collector 写入集群中的数据,都有自己的类型. demux 作业在执行过程中,通过数据类型和配置文件中指定的数据处理类,执行相应的数据分析工作,一般是把非结构化的数据结构化,抽取中其中的数据属性.由于 demux 的本质是一个 map/reduce 作业,所以我们可以根据自己的需求制定自己的 demux 作业,进行各种复杂的逻辑分析. chukwa 提供的 demux interface 可以用 java 语言来方便地扩展.
而 archive 作业则负责把同类型的数据文件合并,一方面保证了同一类的数据都在一起,便于进一步分析, 另一方面减少文件数量, 减轻 hadoop 集群的存储压力。
dbadmin
放在集群上的数据,虽然可以满足数据的长期存储和大数据量计算需求,但是不便于展示.为此, chukwa 做了两方面的努力:
1. 使用 mdl 语言,把集群上的数据抽取到 mysql 数据库中,对近一周的数据,完整保存,超过一周的数据,按数据离现在的时间长短作稀释,离现在越久的数据,所保存的数据时间间隔越长.通过 mysql 来作数据源,展示数据.
2. 使用 hbase 或类似的技术,直接把索引化的数据在存储在集群上
到 chukwa 0.4.0 版本为止, chukwa 都是用的第一种方法,但是第二种方法更优雅也更方便一些.
hicc
hicc 是 chukwa 的数据展示端的名字.在展示端, chukwa 提供了一些默认的数据展示 widget,可以使用“列表”、“曲线图”、“多曲线图”、“柱状图”、“面积图式展示一类或多类数据,给用户直观的数据趋势展示。而且,在 hicc 展示端,对不断生成的新数据和历史数据,采用 robin 策略,防止数据的不断增长增大服务器压力,并对数据在时间轴上“稀释”,可以提供长时间段的数据展示
从本质上, hicc 是用 jetty 来实现的一个 web 服务端,内部用的是 jsp 技术和 javascript 技术.各种需要展示的数据类型和页面的局都可以通过简直地拖拽方式来实现,更复杂的数据展示方式,可以使用 sql 语言组合出各种需要的数据.如果这样还不能满足需求,不用怕,动手修改它的 jsp 代码就可以了.
其它数据接口
如果对原始数据还有新的需要,用户还可以通过 map/reduce 作业或 pig 语言直接访问集群上的原始数据,以生成所需要的结果。chukwa 还提供了命令行的接口,可以直接访问到集群上数据。
默认数据支持
对于集群各节点的cpu使用率、内存使用率、硬盘使用率、集群整体的 cpu 平均使用率、集群整体的内存使用率、集群整体的存储使用率、集群文件数变化、作业数变化等等 hadoop 相关数据,从采集到展示的一整套流程, chukwa 都提供了内建的支持,只需要配置一下就可以使用.可以说是相当方便的.
可以看出,chukwa 从数据的产生、收集、存储、分析到展示的整个生命周期都提供了全面的支持。

  • 大小: 60.8 KB
  • 大小: 47.3 KB
分享到:
评论

相关推荐

    Hadoop状态分析系统Chukwa.pdf

    Chukwa的主要目标是对大型分布式系统中的海量日志数据进行收集、存储、分析和展示,帮助管理员了解系统的运行状态,发现潜在的问题,并进行故障排查。它不是实时监控系统,而是针对分钟级别的数据进行分析,适合处理...

    Hadoop状态分析系统Chukwa.docx

    通过收集和分析系统日志、监控资源使用情况、识别潜在问题,Chukwa使得运维人员能够更好地理解和控制复杂的分布式环境。 总的来说,Chukwa是Hadoop生态系统中不可或缺的一部分,它扩展了Hadoop的功能,使其不仅限于...

    chukwa_cca08

    在这一背景下,Chukwa作为Hadoop的官方子项目应运而生,它不仅继承了Hadoop的可扩展性和鲁棒性,还提供了一套灵活强大的工具集,用于收集、监控和分析大规模分布式系统的数据。 #### Chukwa的设计与实现 Chukwa的...

    chukwa安装

    Chukwa是一款开源的大数据收集系统,主要用于监控和分析大规模分布式系统的日志和性能数据。它的设计灵感来源于Hadoop,同样基于Apache软件基金会,并且在Hadoop生态系统中扮演着重要角色。Chukwa通过提供一个可靠的...

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

    基于 Hadoop 的大数据产品分析包括 HBase、Pig、Chukwa、Hive、ZooKeeper 等产品的应用。基于 Hadoop 的大数据行业应用分析包括政府、互联网、电信、金融等行业的大数据应用需求和潜在市场空间。 大数据是一种新...

    一种基于Hadoop分布式气瓶管理系统设计研究.pdf

    在实际应用中,基于Hadoop的气瓶管理系统可能需要处理的数据包括气瓶的状态信息、使用记录、维护历史、位置追踪信息等。Hadoop的高效并行处理能力,使得这些信息可以在短时间内得到处理和分析,从而为气瓶的管理提供...

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

    Hadoop的核心组件包括分布式文件系统(HDFS)和分布式计算模型(MapReduce),还有其他如Pig、HBase、Chukwa、Hive和ZooKeeper等配套工具。 Hadoop的优势在于其可扩展性,可以在普通PC上运行,降低成本;其可靠性...

    开源日志系统比较:scribe、chukwa、kafka、flume.pdf

    Chukwa是Apache基金会的一个项目,与Hadoop生态系统紧密集成。Chukwa设计的目标是处理大规模的集群日志分析,提供灵活的数据源、高性能存储和数据分析框架。Chukwa的角色包括adaptor、agent和collector。adaptor...

    Hadoop研究周记.pdf

    7. **Chukwa**:Chukwa是用于大型分布式系统的数据收集系统,用于监控和管理日志数据。 8. **Avro**:Avro是Hadoop生态中的数据序列化系统,提供了一种紧凑、高效的二进制数据格式,支持动态语言和静态语言的互操作...

    Hadoop学习笔记.pdf

    - Chukwa:它是基于Hadoop的开源数据收集系统,用于监控大型分布式系统的健康状态。 - Pig:是一种高级的脚本语言,用于编写MapReduce任务,适用于数据流和数据转换的场景。 - Hive:为数据仓库设计,提供了SQL方言...

    大数据应用分析(Hadoop)45.pptx

    - Chukwa:用于集群监控,收集和分析系统运行时的大量数据。 - Hive:提供了SQL-like查询接口,使用户可以方便地对Hadoop上的数据进行分析,而无需了解MapReduce的底层细节。 - ZooKeeper:是一个分布式协调服务,...

    The Hadoop Distributed File System

    这些组件共同构成了强大的Hadoop生态系统,它们相互协作,实现了从数据存储、处理到分析的全流程自动化。 #### 实际应用场景 以Yahoo!为例,HDFS被广泛应用于管理超过25PB的企业级数据。其最大的集群拥有3500台...

    hadoop大数据零基础实战培训教程.rar

    Chukwa是Hadoop生态系统中的一个监控工具,用于收集、存储和分析大规模分布式系统的操作数据。它提供了对系统状态的全面视图,帮助管理员检测问题并进行性能调优。通过学习Chukwa,你可以掌握如何设置和管理日志收集...

    Hadoop集群搭建总结

    - **Chukwa**:分布式数据收集和分析系统,可以收集和分析来自HDFS的数据。 **2.2 Hadoop核心架构** Hadoop的核心架构主要包括以下几个关键组件: - **HDFS**:位于整个架构的最底层,负责存储分布在各个节点上的...

    chukwa安装配置[定义].pdf

    它与Hadoop紧密集成,用于收集、存储和分析系统日志、性能指标等数据。在本文中,我们将详细介绍如何在已安装Hadoop环境的基础上配置Chukwa。 首先,确保你已经有了一个Cloudera-training-0.3.4的VMware镜像,这将...

    开源日志系统比较:scribe、chukwa、kafka、flume.docx

    本篇将对比分析四个流行的开源日志系统:Facebook的Scribe、Apache的Chukwa、LinkedIn的Kafka以及Cloudera的Flume,主要关注它们的设计架构、负载均衡能力、可扩展性和容错机制。 **1. Facebook的Scribe** Scribe...

    Hadoop学习

    此外,还需学习如何进行数据集成,包括使用Sqoop、Chukwa、Flume等工具与关系型数据库和数据分析工具集成。掌握HDFS、MapReduce工作原理、YARN框架的使用方法、编写MapReduce程序、监控运行状态等技能也是学习的重要...

    介绍Hadoop体系

    - Chukwa是一个基于Hadoop的集群监控系统,主要用于收集、存储和显示大型分布式系统的监控数据,帮助管理员监控系统健康状态。 4. **HBase** - HBase是一个基于列存储模型的分布式数据库,能够处理大规模数据集,...

Global site tag (gtag.js) - Google Analytics