本书以Flume日志收集与MapReduce模式为主题,分为上下两篇。上篇主要介绍了HDFS以及流式数据/日志的问题,并探讨了Flume是如何解决这些问题的。通过详细的讲解和案例分析,读者可以了解Flume在日志收集和处理过程中的重要作用。本书还着重讨论了MapReduce模式在大数据处理中的优势和应用。对于对Flume和MapReduce模式感兴趣的读者来说,这本书是一部宝贵的参考资料。如果你想了解更多关于Flume和MapReduce模式的知识,不妨下载这本书来深入学习吧。
Flume日志收集与MapReduce模式 电子书封面
读者评价
看了一半再来评价感谢作者的研究,感激分层很清晰,对新手来说也不会难理解
对Flume可以有个简单了解,但是非常入门,这么薄的书也不可能深入,就是当入门文档看了。后半本的MapReduce纯粹是充字数的.
技术讲解太浅,后面的Hadoop Map Reduce跟Flume关系不大。
内容介绍
本书分为上下两篇,其中上篇介绍了HDFS以及流式数据/日志的问题,同时还谈到了Flume是如何解决这些问题的。本书展示了Flume的架构,包括将数据移动到数据库中以及从数据库中获取数据、NoSQL数据存储和性能调优。对于各个架构组件(源、通道、接收器、通道处理器、接收器组等),都提供了详尽的各种实现以及配置选项,你可以借此根据自己的需要来定制Flume。同时,还介绍了如何编写自定义的实现,这将有助于你的学习与实现。下篇简洁明快地介绍了Hadoop以及如何使用MapReduce进行编程,旨在帮助读者快速起步并对使用Hadoop进行编程有个总体的认识,通过本书的学习,你将具备坚实的基础并可以解决遇到的各种MapReduce问题。
目录
- 译者序
- 前 言
- 上篇 Flume日志收集
- 第1章 概览与架构
- 第2章 Flume快速起步
- 第3章 通道
- 第4章 接收器与接收处理器
- 第5章 源与通道选择器
- 第6章 拦截器、ETL与路由
- 第7章 监控Flume
- 第8章 万法皆空——实时分布式数据收集的现状
- 下篇 MapReduce模式
- 第9章 使用Java编写一个单词统计应用(初级)
- 第10章 使用MapReduce编写一个单词统计应用并运行(初级)
- 第11章 在分布式环境中安装Hadoop并运行单词统计应用(初级)
- 第12章 编写格式化器(中级)
- 第13章 分析——使用MapReduce绘制频度分布(中级)
- 第14章 关系操作——使用MapReduce连接两个数据集(高级)
- 第15章 使用MapReduce实现集合操作(中级)
- 第16章 使用MapReduce实现交叉相关(中级)
- 第17章 使用MapReduce实现简单搜索(中级)
- 第18章 使用MapReduce实现简单的图操作(高级)
- 第19章 使用MapReduce实现Kmeans(高级)
- 作者介绍
一个分布式、可靠、高可用的海量日志采集系统 可靠性:保证数据不丢失 可扩展性:各组件数目可扩展 高性能:吞吐率很高,能满足海量数据收集需求 可管理性:可动态增加和删除组件
Flume主要由3个重要的组件购成: Source:完成对日志数据的收集,分成transtion 和 event 打入到channel之中。 Channel:主要提供一个队列的功能,对source提供中的数据进行简单的缓存。 Sink:取出Channel中的数据,进行相应的存储文件系统,数据库,或者提交到远程服务器。 对现有程序改动最小的使用方式是使用是直接读取程序原来记录的日志文件,基本可以实现无缝接入,不需要对现有程序进行任何改动。 对于直接读取文件Source,有两种方式: ExecSource:以运行Linux命令的方式,持续的输出最新的数据,如tail -F 文件名指令,在这种方式下,取的文件名必须是指定的。 SpoolSource:是监测配置的目录下新增的文件,并将文件中的数据读取出来。需要注意两点: 1、拷贝到spool目录下的文件不可以再打开编辑。2、spool目录下不可包含相应的子目录。 在实际使用的过程中,可以结合log4j使用,使用log4j的时候,将log4j的文件分割机制设为1分钟一次,将文件拷贝到spool的监控目录。log4j有一个TimeRolling的插件,可以把log4j分割的文件到spool目录。基本实现了实时的监控。Flume在传完文件之后,将会修改文件的后缀,变为.COMPLETED(后缀也可以在配置文件中灵活指定) ExecSource,SpoolSource对比:ExecSource可以实现对日志的实时收集,但是存在Flume不运行或者指令执行出错时,将无法收集到日志数据,无法何证日志数据的完整性。SpoolSource虽然无法实现实时的收集数据,但是可以使用以分钟的方式分割文件,趋近于实时。如果应用无法实现以分钟切割日志文件的话,可以两种收集方式结合使用。 Channel有多种方式:有MemoryChannel,JDBC Channel,MemoryRecoverChannel,FileChannel。MemoryChannel可以实现高速的吞吐,但是无法保证数据的完整性。MemoryRecoverChannel在官方文档的建议上已经建义使用FileChannel来替换。FileChannel保证数据的完整性与一致性。在具体配置不现的FileChannel时,建议FileChannel设置的目录和程序日志文件保存的目录设成不同的磁盘,以便提高效率。 Sink在设置存储数据时,可以向文件系统中,数据库中,hadoop中储数据,在日志数据较少时,可以将数据存储在文件系中,并且设定一定的时间间隔保存数据。在日志数据较多时,可以将相应的日志数据存储到Hadoop中,便于日后进行相应的数据分析。