Hadoop开发案例第10章 Hadoop数据采集Flume.pptxVIP

Hadoop开发案例第10章 Hadoop数据采集Flume.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
引言Flume是Cloudera提供的高可用,高可靠,分布式的海量数据采集、聚集和移动大量的数据从多种源数据系统并集中存储。当前Flume有两个版本Flume 0.9X版本的统称Flume-OG,Flume1.X版本的统称Flume-NG,主要用于解决数据收集问题。本章通过对Flume简介、架构、常见命令、编程接口的讲解,让学生深刻理解和运用Flume系统。Flume简介官方网址://Flume 作为 Cloudera开发的实时日志收集系统,在企业中得到广泛的应用。Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 Cloudera。但随着 Flume 功能的扩展,Flume OG 代码工程臃肿、核心组件设计不合理、核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版本 0.94.0 中,日志传输不稳定的现象尤为严重,为了解决这些问题,2011 年 10 月 22 号,Cloudera完成了 Flume-728,对 Flume 进行了里程碑式的改动:重构核心组件、核心配置以及代码架构,重构后的版本统称为 Flume NG(next generation);改动的另一原因是将 Flume 纳入 Apache 旗下,Cloudera Flume 改名为 Apache Flume。Flume核心概念 Flume采用了分层架构,其中涉及到很多概念,例如:Agent、Client、Source、Sink、Channel、Events等。 组件功能Agent 使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。Client 生产数据,运行在一个独立的线程。Source从Client收集数据,传递给Channel。Sink从Channel收集数据,运行在一个独立线程。Channel 连接 sources 和 sinks ,这个有点像一个队列。Events 可以是日志记录、 AVRO 对象等。Flume系统要求Java运行环境1.6或1.7以上,建议使用JDK1.7。保证足够的内存用于配置使用的sources、channels、sinks。保证足够的磁盘空间用于配置使用的sources、channels、sinks。保证被agent使用的目录具有读写权限。Flume架构Flume架构整体上是Source→Channel→Sink的三层架构。Source:完成对日志数据的收集,分成 Transtion 和 Event 送入到Channel之中。?Channel:主要提供一个队列的功能,对Source提供中的数据进行简单的缓存。?Sink:取出Channel中的数据,进行相应的存储文件系统,数据库,或者提交到远程服务器。?Flume以Agent为最小的独立运行单位。一个Agent就是一个JVM。单Agent由Source、Sink和Channel三大组件构成。Flume架构Flume数据流Flume的数据流由事件(Event)贯穿始终。事件是Flume的基本数据单位,它携带日志数据(字节数组形式)并且携带有头信息,这些Event由Agent外部的Source,比如上图中的Web Server生成。当Source捕获事件后会进行特定的格式化,然后Source会把事件推入(单个或多个)Channel中。可以把Channel看作是一个缓冲区,它将保存事件直到Sink处理完该事件。Sink负责持久化日志或者把事件推向另一个Source。Flume提供了大量内置的Source、Channel和Sink类型。不同类型的Source、Channel和Sink可以自由组合。组合方式基于用户设置的配置文件,非常灵活。比如:Channel可以把事件暂存在内存里,也可以持久化到本地硬盘上。Sink可以把日志写入HDFS, Hbase,甚至是另外一个Source等等。Flume也可以支持用户建立多级流,也就是说,多个Agent可以协同工作,并且支持Fan-in、Fan-out、Contextual Routing、Backup Routes。 Flume数据流Flume常见操作命令# flume-ng指令commands: help现实帮助文本 agent运行一个Flume代理 avro-client运行一个Avro的Flume客户端 version展示Flume的版本信息global options: --conf,-c conf 使用 conf 目录下的配置 --classpath,-C cp 添加 classpath --dryrun,-d并没有开始Flume,只是打印命令 -Dproperty=value设置一个Java系

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档