1、什么是Chuwka?

Chuwka官方解释:

Apache Chukwa是一个用于监控大型分布式系统的开源数据收集系统。Apache Chukwa构建于Hadoop分布式文件系统(HDFS)和Map / Reduce框架之上,并继承了Hadoop的可扩展性和健壮性。Apache Chukwa还包括一个灵活而强大的工具包,用于显示,监控和分析结果,以充分利用收集的数据。

2、为什么使用Chuwka

当一家公司刚开始做大数据,或者说使用大数据技术处理数据时,刚开始的大数据集群的规模不是很大,每天从业务数据源或者其他数据源得到的数据不是很多。但是当公司逐渐发展,业务线逐渐增多并且数据量增多,这时候hadoop集群的规模可能达到1000+时,集群自身的信息将会大量增加。

面对这种情况,Apache开发出一个开源的数据收集和分析系统—Chukwa来处理Hadoop集群的数据。Chukwa有几个非常吸引人的特点:

1)架构清晰,部署简单;

2)收集的数据类型广泛,具有很强的扩展性;

3)与 Hadoop 无缝集成,能完成海量数据的收集与整理。

3、Chuwka的架构

主要部件介绍:

1. agents : 负责采集最原始的数据,并发送给 collectors 
2. adaptor : 直接采集数据的接口和工具,一个 agent 可以管理多个 adaptor 的数据采集 
3. collectors : 负责收集 agents 收送来的数据,并定时写入集群中 

4. map/reduce jobs : 定时启动,负责把集群中的数据分类、排序、去重和合并 
5. HICC : 负责数据的展示

组件说明:

> adaptors 和 agents

在每个数据的生成端(即集群上的每一个节点), chukwa 使用一个 agent 来采集它感兴趣的数据,每一类数据通过一个 adaptor 来实现, 数据的类型需要在相应的配置中指定。

在默认情况下, chukwa 会对以下常见的数据来源提供相应的 adaptor : 命令行输出、log 文件和 httpSender等等. 这些 adaptor 会定期运行(比如每分钟读一次 df 的结果)或事件驱动地执行(比如 kernel 打了一条错误日志). 如果这些 adaptor 还不够用,用户也可以方便地自己实现一个 adaptor 来满足需求。

为防止数据采集端的 agent 出现故障,chukwa 的 agent 采用了所谓的 ‘watchdog’(看门狗) 机制,会自动重启终止的数据采集进程,防止原始数据的丢失。另一方面, 对于重复采集的数据, 在 chukwa 的数据处理过程中,会自动对数据进行去重. 这样,就可以对于关键的数据在多台机器上部署相同的 agent,从而实现容错的功能.

> collectors

agents 会将其采集到的数据,首先存储到 hadoop 集群上的.。由于hadoop 集群擅长于处理少量大文件,而对于大量小文件的处理则不是它的强项,针对这一点,chukwa 设计了 collector 这个角色,用于把数据先进行部分合并,再写入集群,防止大量小文件的写入。 也就是说:collector主要实现了将大量小文件合并成少量大文件的功能。在hadoop大数据集群里,对于小文件的优化是一个比较重要的优化,有多种关于小文件优化的措施,具体自行搜索。

另一方面,为防止 collector 成为性能瓶颈或成为单点,产生故障, chukwa 允许和鼓励设置多个 collector, agents 随机地从collectors 列表中选择一个collector 传输数据,如果一个 collector 失败或繁忙,就换下一个collector。从而可以实现负载的均衡,实践证明,多个 collector 的负载几乎是平均的.

在大数据领域,分布式存储和分布式计算都是非常重要的应用,在大数据集群中,包括使用hadoop的HA、hadoop的联邦机制、多个DataNode节点及相关data目录的设置都是为了分布式和单点故障而出现的。

> demux 和 archive

存储在集群上的数据,是通过 map/reduce 作业来实现数据分析的. 在 map/reduce 阶段, chukwa 提供了 demux 和 archive 任务两种内置的作业类型.

demux 作业负责对数据的分类、排序和去重. 在 agent 一节中,我们提到了数据类型(DataType)的概念.由 collector 写入集群中的数据,都有自己的类型. demux 作业在执行过程中,通过数据类型和配置文件中指定的数据处理类,执行相应的数据分析工作,一般是把非结构化的数据进行结构化,抽取中其中的数据属性.由于 demux 的本质是一个 map/reduce 作业,所以我们可以根据自己的需求制定自己的 demux 作业,进行各种复杂的逻辑分析. chukwa 提供的demux interface 可以用 java 语言来方便地扩展.

archive 作业则负责把同类型的数据文件合并,一方面保证了同一类的数据都在一起,便于进一步分析, 另一方面减少文件数量, 减轻 hadoop 集群的存储压力。(在这里为什么说可以减轻hadoop集群的存储压力呢?原因是每个小文件它存放在具体的哪个位置,包括文件的大小属性等这些元数据是保存在namenode节点上的,如果这样的小文件有多个的话,势必会占用过多的namenode内存,这对namenode内存是一种多余的消耗,会造成namenode内存瓶颈的出现;另外客户端查找相关数据的时候,会向namenode发送查找的文件在哪个datanode节点上的请求,如果小文件过多的话,那么也会增加namenode查找的过程,延长对客户端响应的时间)

> dbadmin

存储在hadoop集群上的数据,虽然可以满足数据的长期存储和大数据量离线计算需求,但是不便于java前端调取数据库中的数据进行展示。为此, chukwa 做了两方面的努力:

1. 使用 mdl 语言,把集群上的数据抽取到 mysql 数据库中,对近一周的数据,完整保存,超过一周的数据,按数据离当前时间长短作稀释,离当前越久的数据,所保存的数据时间间隔越长.通过 mysql 来作数据源,展示数据.

2. 使用 hbase 或类似的技术,直接把索引化的数据在存储在集群上

到 chukwa 0.4.0 版本为止, chukwa 都是用的第一种方法,但是第二种方法更优雅也更方便一些,另外,如果使用hbase数据库,可以实现对数据的实时处理.

> hicc

hicc 是 chukwa 的数据展示端的名称。在展示端,chukwa 提供了一些默认的数据展示 widget,可以使用“列表”、“曲线图”、“多曲线图”、“柱状图”、“面积图式展示一类或多类数据,给用户直观的数据趋势展示。而且,在 hicc 展示端,对不断生成的新数据和历史数据,采用 robin 策略,防止数据的不断增长增大服务器压力,并对数据在时间轴上“稀释”,可以提供长时间段的数据展示

从本质上, hicc 是用 jetty 来实现的一个 web 服务端,内部用的是 jsp 技术和 javascript 技术.各种需要展示的数据类型和页面的局都可以通过简直地拖拽方式来实现,更复杂的数据展示方式,可以使用 sql 语言组合出各种需要的数据.如果这样还不能满足需求,不用怕,动手修改它的 jsp 代码就可以了。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

用人品去感动别人,用改变去影响别人,用状态去燃烧别人,用行动去带动别人,用阳光去照耀别人,用坚持去赢得别人,要求自己每天都去做与目标有关的事情,哪怕每天只进步一点点,坚持下来你就是最优秀卓越的!欢迎大家加入大数据交流群:725967421     一起交流,一起进步!!

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

关于 Chukwa 数据收集监控系统的介绍相关推荐

  1. 搭建亿级时间线数据的监控系统,我有绝招!

    本文分享自华为云社区<HDC.Cloud2021|如何使用华为云GaussDB(for Influx) + Grafana搭建亿级时间线数据的监控系统>,原文作者:心机胖 . 随着云计算规 ...

  2. 大数据舆情监控应用平台,TOOM大数据舆情监控系统的作用

    大数据舆情监控应用是利用大数据技术对社会舆情的收集.分析.挖掘和展示的工具.它通常会收集和分析各种社交媒体.新闻媒体.博客等信息,以了解舆情动态和趋势.大数据舆情监控应用可以帮助企业和政府了解市场和社 ...

  3. TOOM大数据舆情监控系统方案,如何做好舆情大数据监测分析?

    大数据舆情监控是指通过对大量数据的收集.分析和处理,了解舆论的发展趋势和活动,并对舆论风险进行预警和评估,以保障企业的舆论安全.TOOM大数据舆情监控系统方案,如何做好舆情大数据监测分析? 一.大数据 ...

  4. 数据中心计算机系统图,数据中心监控系统

    数据中心监控系统是一个综合利用计算机网络技术.数据库技术.通信技术.自动控制技术.新型传感技术等构成的计算机网络,提供的一种以计算机技术为基础.基于集中管理监控模式的自动化.智能化和高效率的技术手段, ...

  5. 开源监控系统Prometheus介绍

    前言 Prometheus是CNCF的一个开源项目,Google BorgMon监控系统的开源版本,是一个系统和服务的监控系统.周期性采集metrics指标,匹配规则和展示结果,以及触发某些条件的告警 ...

  6. 服务器监控系统的介绍,客户服务系统服务器监控系统

    摘要: 目前,对于服务器性能监控的研究正面临诸多挑战.国际上有许多针对服务器性能监控问题的研究项目,这些研究成果都得到了广泛的应用.本文通过对现有研究成果的综述,在借鉴现有体系结构模型思想的基础上进行 ...

  7. 配电室的管理制度及综合监控系统的介绍

    安科瑞虞佳豪 1.配电室全部机电设备,由配电室人员负责管理和值班,停送电由值班电工操作,非值班电工禁止操作,无关人员禁止进入配电室:公司内有关上级部门因检查工作,必须要进入这些场所时,应由工程主管或其 ...

  8. 安防监控系统组成部分介绍

    安防监控系统是一门被人们日益重视的新兴专业,就目前发展看,应用普及越来越广,科技含量越来越高.几乎所有高新科技都可促进其发展,尤其是信息时代的来临,更为该专业发展提供契机.但就监控业界而言,系统组成一 ...

  9. 数据收集及数据分析工具介绍

    以下文章内容,来自草堂君的新书<人人都会数据分析-从生活实例学统计>.因为新书中增添和细化了很多知识点,所以草堂君会逐步将这些内容补充到统计基础导航页中来,帮助大家建立数据分析思维.限于篇 ...

最新文章

  1. 【未来研究】城市云脑是互联网云脑的节点,城市云脑之间如何互补与支撑
  2. Go语言基础之数据类型
  3. 利用中断在 ESP32 MicroPython 程序中读取AM2302
  4. php中public放什么,PHP中常用关键字public, private, protected, static...
  5. 点击弹窗 input直接是待输入状态_第六课:你知道如何用两行代码做个弹窗吗?看这里...
  6. gis里创建要素面板怎么打开_【从零开始学GIS】ArcGIS中的绘图基本操作(二)
  7. 边沿触发是什么意思_集基耦合双稳电路,集成化单稳电路,数字逻辑电路,门电路,触发器...
  8. Hive 行转列,列传行 - Impala 暂不支持
  9. 用冒泡法对10个整数从小到大排序
  10. 虎牙联合河北省反诈中心推出“青少年反诈教育公开课”
  11. golang 解析php序列化,golang实现php里的serialize()和unserialize()序列和反序列方法
  12. 注意一些坑,从app跳转到qq聊天界面。
  13. 只有20行Javascript代码!手把手教你写一个页面模板引擎
  14. List 去除重复数据的 5 种正确姿势!
  15. .NET中获取电脑名、IP地址及用户名方法
  16. 标注工具 labelImg 的下载安装及使用
  17. 60道逻辑推理题及答案
  18. matlab环境下图像分形维数的计算,MATLAB环境下图像分形维数的计算
  19. 《大电机技术》期刊简介
  20. java二进制传输_Java基于TCP方式的二进制文件传输

热门文章

  1. Android Studio 2.2新增布局——ConstraintLayout完全解析
  2. c++如何输入带空格的字符串
  3. 国产景嘉微(JM7200)显卡+KYLIN(银河麒麟)系统性能测试程式安装及运行
  4. linux正则和三剑客(grep,sek,awk)
  5. 数据放在本地,心里才更踏实,滚雪球学 Python
  6. 第一个java程序书_Java入门(4) 第一个Java程序
  7. HTML入门三(超链接,音频,视频)
  8. 今天出现一个Spring无法向Service里面注入bean的异常
  9. sga的组成 简述oracle_Oracle SGA多个部分的组成
  10. 物联网是什么?物联网的关键技术是什么?