《Flume:构建高可用、可扩展的海量日志采集系统》从Flume 的基本概念和设计原理开始讲解,分别介绍了不同种类的组件、如何配置组件、如何运行Flume Agent 等。同时,分别讨论Source、Channel 和Sink 三种核心组件,不仅仅阐述每个组件的基本概念,而且结合实际的编程案例,深入、全面地介绍每个组件的详细用法,并且这部分内容也是整个Flume 框架的重中之重。之后,讲解拦截器、Channel选择器、Sink 组和Sink 处理器等内容,它们为Flume 提供灵活的扩展支持。最后,介绍了Flume 的高级使用,如何使用Flume 软件开发工具集(SDK)和Embedded Agent API,如何设计、部署和监控Flume 生产集群。
总而言之,《Flume:构建高可用、可扩展的海量日志采集系统》是一本理论结合实战,深度、广度兼备的海量日志采集系统的著作。
译者序 v
序 xiii
前言 x
第1章 认识Apache Hadoop和Apache HBase 1
分布式文件系统HDFS 1
HDFS 的数据格式 3
处理HDFS 中的数据 4
Apache HBase 4
总结 5
参考文献 6
第2 章 用Apache Flume 处理流数据 7
我们需要Flume 7
Flume 是否适合呢? 9
Flume Agent 内部原理 10
配置Flume Agent 13
Flume Agent 之间的相互通信 17
复杂的流 17
复制数据到不同目的地 20
动态路由 21
Flume 的数据丢失保证,Channel 和事务 22
Flume Channel 中的事务 23
Agent 失败和数据丢失 25
批量的重要性 26
重复怎么样? 27
运行Flume Agent 27
总结 29
参考文献 30
第3 章 源(Source) 31
Source 的生命周期 31
Sink-to-Source 通信 33
Avro Source 34
Thrift Source 37
RPC Sources 的失败处理 39
HTTP Source 40
针对HTTP Source 写处理程序* 42
Spooling Directory Source 47
使用Deserializers 读取自定义格式* 50
Spooling Directory Source 性能55
Syslog Source 55
Exec Source 59
JMS Source 61
转换JMS 消息为Flume 事件* 63
编写自定义Source* 65
Event-Driven Source 和Pollable Source 66
总结 73
参考文献 73
第4 章 Channel 75
事务工作流 76
Flume 自带的Channel 78
Memory Channel 78
File Channel 80
总结 86
参考文献 86
第5 章 Sink 87
Sink 的生命周期 88
优化Sink 的性能 89
写入到HDFS :HDFS Sink 89
理解Bucket 90
配置HDFS Sink 93
使用序列化器控制数据格式* 100
HBase Sink 106
用序列化器将Flume 事件转换成HBase Put 和Increment* 108
RPC Sink 113
Avro Sink 113
Thrift Sink 115
Morphline Solr Sink 116
Elastic Search Sink 119
自定义数据格式* 121
其他Sink :Null Sink、Rolling File Sink 和Logger Sink 124
编写自定义Sink* 125
总结 129
参考文献 129
第6章 拦截器、Channel选择器、Sink组和Sink处理器 131
拦截器 131
时间戳拦截器 132
主机拦截器 133
静态拦截器 133
正则过滤拦截器 134
Morphline 拦截器 135
UUID 拦截器 136
编写拦截器* 137
Channel 选择器 140
复制Channel 选择器 140
多路复用Channel 选择器 141
自定义Channel 选择器* 144
Sink 组和Sink 处理器 146
Load-Balancing Sink 处理器 148
Failover Sink 处理器 151
总结 153
参考文献 154
第7 章 发送数据到Flume* 155
构建Flume 事件 155
Flume 客户端SDK 156
创建Flume RPC 客户端 157
RPC 客户端接口 157
所有RPC 客户端的公共配置参数 158
默认RPC 客户端 165
Load-Balancing RPC 客户端 168
Failover RPC 客户端 171
Thrift RPC 客户端 172
嵌入式Agent 173
配置嵌入式Agent 175
log4j Appender 180
Load-Balancing log4j Appender 181
总结 182
参考文献 183
第8 章 规划、部署和监控Flume 185
规划一个Flume 部署 185
修复时间 185
我的Flume Channel 需要多少容量? 186
多少层? 186
通过跨数据中心链接发送数据 188
层分片 190
部署Flume 191
部署自定义代码 191
监控Flume 193
从自定义组件报告度量 196
总结 196
参考文献 196
索引 197
——Arvind Prabhakar,StreamSets CTO