今日之时代是大数据时代,大数据在各行各业中都发挥着巨大的作用。这对于广大开发者们也提出了新的要求,如何追赶技术的脚步、如何在大数据时代走在技术的前列成为摆在每一个技术人员面前的问题。提到大数据就不得不提到Hadoop以及围绕Hadoop形成的大数据生态系统:HBase、Hive、Pig、ZooKeeper、Flume、Storm等。这其中更是以Hadoop为整个生态系统的核心和重中之重。虽然面临着后来者Spark的挑战,但Hadoop凭借成熟的工具库、完善的生态系统、业界的广泛应用依旧深受各大互联网公司的青睐。目前市场上关于Hadoop的技术图书已经汗牛充栋,那么,本书有哪些特点值得各位读者阅读呢?本书共包含两篇内容:上篇是关于Apache Flume的介绍;下篇是关于MapReduce模式的介绍。上篇针对Apache Flume进行了深入讲解。值得一提的是,目前市场上关于Flume的技术图书非常少,本书的出现很好地填补了这一空白。该篇首先从Flume的宏观架构谈起,接下来介绍如何安装与使用Flume,然后对Flume的核心组件通道、接收器、源、拦截器等进行深入讲解,最后介绍Flume监控方面的知识并总结了实时分布式数据收集的现状。相信各位读者可以从中学到有关Apache Flume方方面面的知识并能灵活地运用到项目中。对于MapReduce模式,下篇独辟蹊径,针对一个个问题分别进行介绍,摒弃了传统的流水账讲解方式,这样读者可以带着问题持续阅读,每一个案例最后都会给出相应的解决方案。这些案例都是与Hadoop相关的非常经典的案例,从最简单的使用Java编写一个单词统计应用到复杂的使用MapReduce实现Kmeans,相信各位读者从中可以学到许多关于Hadoop的知识。
总的来说,这本涵盖Flume与Hadoop两个重要主题的图书会给各位读者带来耳目一新之感,同时这两个主题之间也存在着必然的联系,对有志于在大数据领域深耕的广大技术从业人员来说是一本上佳的领域专著。
翻译技术图书是一项艰苦的工作,首先非常感谢机械工业出版社华章公司的编辑们,感谢你们在图书翻译过程中给予我的支持与鼓励;此外,我还要对妻子张明辉说声感谢,你无微不至的关怀让我能够专心于翻译工作,同时也将本书献给我一岁多的孩子张梓轩,希望你在未来能够茁壮成长;最后,我要感谢我的父母,没有你们的养育就不会有今天的我。
尽管在翻译过程中本人已经付出了巨大的努力,但错误与遗漏之处在所难免,恳请广大读者将发现的错误及时告知于我以便在后续版本中能够及时更正。我的邮箱是zhanglong217@163.com,新浪微博是@风中叶的思考,欢迎关注。
封面图
目录
- 译者序
- 前言
- 上篇Flume日志收集
- 第1章概览与架构2
- 1.1Flume 0.93
- 1.2Flume 1.X(Flume-NG)4
- 1.3HDFS与流式数据/日志的问题5
- 1.4源、通道与接收器6
- 1.5Flume事件7
- 1.5.1拦截器、通道选择器与选择处理器8
- 1.5.2分层数据收集(多数据流与代理)9
- 1.6小结10
- 第2章Flume快速起步11
- 2.1下载Flume11
- 2.2Flume配置文件概览13
- 2.3从“Hello World”开始15
- 2.4小结20
- 第3章通道22
- 3.1内存通道23
- 3.2文件通道25
- 3.3小结29
- 第4章接收器与接收处理器31
- 4.1HDFS接收器31
- 4.1.1路径与文件名34
- 4.1.2文件转储37
- 4.2压缩编解码器38
- 4.3事件序列化器38
- 4.3.1文本输出39
- 4.3.2带有头信息的文本39
- 4.3.3Apache Avro39
- 4.3.4文件类型41
- 4.3.5超时设置与线程池43
- 4.4接收器组44
- 4.4.1负载均衡45
- 4.4.2故障恢复45
- 4.5小结46
- 第5章源与通道选择器48
- 5.1使用tail的问题48
- 5.2exec源50
- 5.3假脱机目录源53
- 5.4syslog源55
- 5.4.1syslog UDP源56
- 5.4.2syslog TCP源58
- 5.4.3多端口syslog TCP源59
- 5.5通道选择器61
- 5.5.1复制62
- 5.5.2多路复用62
- 5.6小结63
- 第6章拦截器、ETL与路由65
- 6.1拦截器65
- 6.1.1Timestamp66
- 6.1.2Host67
- 6.1.3Static68
- 6.1.4正则表达式过滤69
- 6.1.5正则表达式抽取70
- 6.1.6自定义拦截器74
- 6.2数据流分层75
- 6.2.1Avro源/接收器76
- 6.2.2命令行Avro78
- 6.2.3Log4J追加器79
- 6.2.4负载均衡Log4J追加器81
- 6.3路由82
- 6.4小结83
- 第7章监控Flume85
- 7.1监控代理进程86
- 7.1.1Monit86
- 7.1.2Nagios86
- 7.2监控性能度量情况87
- 7.2.1Ganglia87
- 7.2.2内部HTTP服务器89
- 7.2.3自定义监控钩子91
- 7.3小结92
- 第8章万法皆空——实时分布式数据收集的现状93
- 8.1传输时间与日志事件94
- 8.2万恶的时区94
- 8.3容量规划95
- 8.4多数据中心的注意事项96
- 8.5合规性与数据失效97
- 8.6小结98
- 下篇MapReduce模式
- 第9章使用Java编写一个单词统计应用(初级)102
- 9.1准备工作102
- 9.2操作步骤103
- 9.3示例说明103
- 第10章使用MapReduce编写一个单词统计应用并运行(初级)105
- 10.1准备工作105
- 10.2操作步骤106
- 10.3示例说明106
- 10.4补充说明109
- 第11章在分布式环境中安装Hadoop并运行单词统计应用(初级)110
- 11.1准备工作111
- 11.2操作步骤112
- 11.3示例说明116
- 第12章编写格式化器(中级)117
- 12.1准备工作118
- 12.2操作步骤118
- 12.3示例说明119
- 12.4补充说明121
- 第13章分析——使用MapReduce绘制频度分布(中级)122
- 13.1准备工作123
- 13.2操作步骤123
- 13.3示例说明125
- 13.4补充说明128
- 第14章关系操作——使用MapReduce连接两个数据集(高级)129
- 14.1准备工作130
- 14.2操作步骤130
- 14.3示例说明131
- 14.4补充说明134
- 第15章使用MapReduce实现集合操作(中级)135
- 15.1准备工作135
- 15.2操作步骤136
- 15.3示例说明137
- 15.4补充说明140
- 第16章使用MapReduce实现交叉相关(中级)141
- 16.1准备工作141
- 16.2操作步骤142
- 16.3示例说明142
- 16.4补充说明145
- 第17章使用MapReduce实现简单搜索(中级)146
- 17.1准备工作147
- 17.2操作步骤147
- 17.3示例说明148
- 17.4补充说明150
- 第18章使用MapReduce实现简单的图操作(高级)151
- 18.1准备工作152
- 18.2操作步骤152
- 18.3示例说明153
- 18.4补充说明157
- 第19章使用MapReduce实现Kmeans(高级)158
- 19.1准备工作159
- 19.2操作步骤159
- 19.3示例说明160
- 19.4补充说明164