描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302509363
本书是使用Apache Kafka集成其他大数据工具设计和构建企业级流应用程序的综合指南。它包括构建此类应用程序的*实践,并解决了一些常见的挑战性问题,例如如何有效地使用Kafka来轻松处理高容量数据。本书首先介绍了消息系统类型,然后详细介绍了Apache Kafka及其内部细节。本书的第二部分介绍了如何使用各种框架和工具(如Apache Spark、Apache Storm等)设计流应用程序。一旦你掌握了基础知识,我们将带你理解Apache Kafka中更高级的概念,例如容量规划和安全性。
到本书结束时,你将掌握使用Apache Kafka时所需要的所有信息,并使用它设计高效的流数据应用。
本书共13章,全面介绍使用Apache Kafka等大数据工具设计和构建企业级流应用方面的内容,包括构建流应用程序的*实践,并解决了一些常见的挑战,例如如何高效地使用Kafka轻松处理高容量数据。完成本书的学习后,读者能使用Kafka设计高效的流数据应用程序。
本书既适合Kafka初学者、大数据应用开发人员、大数据应用运维人员阅读,也适合高等院校与培训学校相关专业的师生教学参考。
Java编程语言:Kafka生产者示例 42
常见的消息发布模式 44
实践 46
总 结 48
第4章 深入研究Kafka消费者 49
Kafka消费者内部机制 50
理解Kafka消费者的职责 50
Kafka消费者API 52
消费者配置 52
订阅和轮询 54
提交和轮询 56
其他配置 59
利用Java实现Kafka消费者 60
利用Scala实现Kafka消费者 62
Rebalance listeners 64
常用的消息消费模式 64
实践 67
总 结 68
第5章 集成Kafka 构建Spark Streaming应用 69
Spark介绍 70
Spark架构 70
Spark的核心 72
Spark生态系统 73
Spark Streaming 75
Receiver-based集成 75
Receiver-based approach的缺点 77
Receiver-based集成的Java示例 77
Receiver-based集成的Scala示例 79
Direct approach 80
Direct approach的Java示例 82
Direct approach的Scala示例 83
日志处理用例—欺诈IP检测 84
Maven 85
生产者 89
Reader属性 89
生产者代码 90
欺诈IP查找 92
暴露Hive表 93
Streaming代码 94
总 结 97
第6章 集成Kafka构建Storm应用 98
Apache Storm介绍 98
Storm集群架构 99
Storm应用程序的概念 100
Apache Heron介绍 101
Heron架构 102
Heron topology架构 103
集成Apache Kafka与Apache Storm – Java 104
示 例 105
集成Apache Kafka与Apache Storm – Scala 110
用例—使用Storm、Kafka和Hive处理日志 114
生产者 118
生产者代码 119
欺诈IP查找 122
Storm应用程序 123
运行项目 132
总 结 133
第7章 使用Kafka与 Confluent Platform 134
Confluent Platform介绍 135
深入Confluent Platform架构 136
理解Kafka Connect 和 Kafka Stream 139
Kafka Streams 139
使用Schema Registry与Avro交互 140
将Kafka数据移动到HDFS 142
Camus 142
运行Camus 143
Gobblin 144
Gobblin架构 144
Kafka Connect 146
Flume 147
总 结 150
第8章 使用Kafka构建ETL管道 151
在ETL管道中使用Kafka 151
介绍Kafka Connect 153
深入研究Kafka Connect 154
介绍使用Kafka Connect示例 155
Kafka Connect常见的用例 159
总 结 160
第9章 使用Kafka Streams 构建流应用程序 161
介绍Kafka Streams 161
在流处理中使用Kafka 162
Kafka Stream—轻量级流处理库 163
Kafka Stream架构 164
集成框架的优势 166
理解Tables和Streams 167
Maven依赖 167
Kafka Stream单词计数 168
KTable 170
Kafka Stream使用案例 171
Kafka Streams的Maven依赖 171
reader属性 172
IP记录生产者 173
IP查询服务 176
欺诈检测应用程序 177
总 结 179
第10章 Kafka集群部署 180
Kafka集群的内部结构 180
Zookeeper角色 181
复 制 182
元数据(Metadata)请求处理 184
生产者(Producer)请求处理 184
消费者(Consumer)请求处理 185
容量规划 186
容量规划的目标 186
复制因子 186
内 存 187
硬盘驱动器 187
网 络 188
CPU 188
Kafka单集群部署 189
Kafka多集群部署 190
退役brokers 192
数据迁移 192
总 结 193
第11章 在大数据应用中使用Kafka 194
管理Kafka的高容量 195
适当的硬件选择 195
生产者读取和消费者写入的选择 197
Kafka消息传递语义 198
至少一次传递 199
多一次传递 202
正好一次传递 203
大数据和Kafka常见的使用模式 204
Kafka和数据治理 206
报警和监控 207
有用的Kafka指标 208
Kafka生产者指标 208
Kafka broker指标 209
Kafka消费者指标 209
总 结 210
第12章 Kafka安全 211
Kafka安全的概述 211
SSL有线加密 212
Kafka启用SSL的步骤 213
为Kafka broker配置SSL 214
为Kafka客户端配置SSL 214
Kerberos SASL认证 215
在Kafka中启用SASL/GSSAPI的步骤 217
为Kafka broker配置SASL 217
为Kafka客户端配置SASL―生产者和消费者 219
理解ACL和授权 220
常见的ACL操作 221
ACLs列表 222
Zookeeper身份验证 223
Apache Ranger授权 224
为Ranger添加Kafka服务 224
添加策略(policies) 225
实践 227
总 结 229
第13章 流应用程序设计的考虑 230
延迟和吞吐量 231
数据和状态的持久性 232
数据源 232
外部数据查询 233
数据格式 233
数据序列化 234
并行度 234
无序的事件 235
消息处理语义 235
总 结 236
本书是使用Apache Kafka和其他大数据工具设计和构建企业级流应用(应用程序)的综合指南,包括构建此类应用程序的实践,并解决了一些常见的挑战性问题,例如如何有效地使用Kafka来轻松处理高容量数据。本书首先介绍消息系统类型,然后详细介绍Apache Kafka及其内部细节,接着介绍如何使用各种框架和工具(如Apache Spark、Apache Storm等)设计流应用程序。掌握了这些基础知识以后,我们将带你理解Apache Kafka中更高级的概念,例如容量规划和安全性。
到本书结束时,你将掌握使用Apache Kafka时所需要的所有信息,并使用它设计高效的流数据应用程序。
本书涵盖的内容
第1章,消息系统介绍,介绍消息系统的概念。本章涵盖了消息系统及其企业需求的概述,它进一步强调了使用诸如点到点或发布/订阅等消息系统的不同方式,并引入了AMQP。
第2章,介绍Kafka——分布式消息平台,介绍诸如Kafka这样的分布式消息平台。本章涵盖了Kafka架构,并触及内部组件,进一步探讨了每个Kafka组件的角色和重要性,以及它们如何对低延迟、可靠性和Kafka消息系统的可伸缩性做出贡献。
第3章,深入研究Kafka生产者,是关于如何向Kafka系统发布消息的内容。本章进一步介绍了Kafka生产者APIs及其用法,展示了使用Java和Scala编程语言调用Kafka生产者APIs的例子。需要深入了解生产者消息流以及一些用于向Kafka Topics生产消息的常见模式,为Kafka的生产者提供了一些性能优化的技术。
第4章,深入研究Kafka消费者,是关于如何从Kafka系统中消费消息。这也包括Kafka消费者APIs及其使用,展示了使用Java和Scala编程语言调用Kafka消费者APIs的例子,深入探讨了消费者消息流和一些常见的从Kafka Topics中消费消息的模式,为Kafka消费者提供了一些性能优化的技术。
第5章,集成Kafka构建Spark Streaming应用,是关于如何将Kafka与流行的分布式处理引擎Apache Spark集成在一起的内容。本章提供了Apache Kafka的简要概述,将Kafka与Spark集成的不同方法以及它们的优缺点,并展示了Java和Scala中的用例。
第6章,集成Kafka构建Spark Storm应用,是关于如何将Kafka与流行的实时处理引擎Apache Storm集成在一起的内容。本章还简要介绍了Apache Storm和Apache Heron,展示了使用Apache Storm和Kafka进行事件处理的不同方法的示例,包括有保证的事件处理。
第7章,使用Kafka与Confluent Platform,是关于新兴的流平台Confluent的,使你能够有效地使用Kafka和许多其他额外的功能,展示了许多本章涵盖主题的许多例子。
第8章,使用Kafka构建ETL管道,介绍Kafka Connect,这是一种常见组件,用于构建涉及Kafka的ETL管道,强调如何在ETL管道中使用Kafka Connect,并讨论一些相关深入的技术概念。
第9章,使用Kafka Streams构建流应用程序,是关于如何使用Kafka Stream构建流应用程序的内容,这是Kafka 0.10发行版的一个组成部分,也包括使用Kafka Stream构建快速可靠的流应用程序,包括示例。
第10章,Kafka集群部署,着重于在企业级生产系统上部署Kafka集群,深入涵盖了Kafka集群,例如如何进行容量规划、如何管理单个/多集群部署等,还介绍了如何在多租户环境中管理Kafka以及Kafka数据迁移所涉及的各个步骤。
第11章,在大数据应用程序中使用Kafka,介绍了在大数据应用程序中使用Kafka的一些方面,包括如何管理Kafka中的高容量、如何确保有保证的消息传递、处理故障而不丢失数据的方式以及在大数据管道中使用Kafka时可应用的一些治理原则。
第12章,Kafka安全,是关于保护Kafka集群的内容,包括身份验证、授权机制以及示例。
第13章,流应用程序设计的考虑,是关于构建流应用程序的不同设计考虑的内容,可以让你了解并行性、内存调优等方面,全面提供了设计流应用程序的不同范式。
对于这本书你需要什么
你将需要以下软件来处理本书中的示例:
Apache Kafka、大数据、Apache Hadoop、发布和订阅、企业消息系统、分布式流、生产者API、消费者API、Streams API、Connect API。
这本书适合谁
如果你想以简单的方式学习如何使用Apache Kafka和Kafka生态系统中的各种工具,本书就是为你准备的。需要具有一些Java编程经验才能充分利用这本书。
排版约定
在本书中,你将会发现许多区分不同类型信息的文本格式。下面是这些样式的一些例子及其含义的解释。
代码块的设置如下:
import org.apache.Kafka.clients.producer.KafkaProducer;
import org.apache.Kafka.clients.producer.ProducerRecord;
import org.apache.Kafka.clients.producer.RecordMetadata;
任何命令行输入或输出的写法如下:
sudo su – hdfs -c “hdfs dfs -chmod 777 /tmp/hive”
sudo chmod 777 /tmp/hive
部分新术语和重要单词会以粗体显示。例如,在屏幕上看到的单词或菜单中出现的文字如下所示:“为了下载新模块,我们将转到Files | Settings | Project Name | Project Interpreter”。
警告或重要提示使用图标:
提示和技巧使用图标:
读者反馈
欢迎来自我们读者的反馈。让我们知道你对这本书的看法——你喜欢或不喜欢的内容。读者反馈对我们来说很重要,因为它可以帮助我们开发出你真正可以获得收益的主题。
为了给我们提供反馈,请发送E-mail至:[email protected],并在你的邮件主题中注明这本书的书名。
下载示例代码
本书的代码包托管在GitHub上,译者的GitHub网址为:
https://github.com/jiangshouzhuang/Building-Data-Streaming-Applications-with-Apache-Kafka
原书的Github网址为:
https://github.com/PacktPublishing/Building-Data-Streaming-Applications-with-Apache-Kafka
为了方便读者下载,给出这两个网址的二维码如下:
下载本书的彩色图像
我们还为你提供PDF文件,其中包含本书中使用的屏幕截图/图表的彩色图像。彩色图像将帮助你更好地理解输出的细节。我们已经将彩色图像的PDF文件放在了GitHub上面,网址为:
https://github.com/jiangshouzhuang/Building-Data-Streaming-Applications-with-Apache-Kafka/blob/master/ColorImages/BuildingDataStreamingApplicationswithApacheKafka_ColorImages.pdf
译者介绍
蒋守壮,现就职于金拱门(中国)有限公司,担任大数据卓越中心高级工程和平台经理,负责大数据平台的架构和产品研发。译者拥有多年丰富的大数据生产实战经验和产品研发能力,著有图书《基于Apache Kylin构建大数据分析平台》。
评论
还没有评论。