《实时数据处理和分析指南》主要介绍实时大数据计算领域的相关技巧和经验,包括Flink、Spark和Storm等流处理框架技术。全书从搭建开发环境开始,逐步实现流处理,循序渐进地引导读者学习如何利用Rabbit MQ、Kafka和NiFi以及Storm、Spark、Flink和Beam等组件协同应用来解决实际问题。 n 本书内容分为6个部分,分别是“导言——熟悉实时分析”“搭建基础设施”“Storm实时计算”“使用Spark实现实时计算”“使用Flink实现实时分析”以及“综合应用”。 n 在阅读本书之前,读者应具备基本的Java和Scala编程基础,还应熟悉Maven、Java和Eclipse的安装和配置流程。
目录
第 一部分 导言—熟悉实时分析 n n 第 1章 实时分析简介 2 n 1.1 大数据的定义 2 n 1.2 大数据的基础设施 3 n 1.3 实时分析—神话与现实 6 n 1.4 近实时解决方案—可用的架构 9 n 1.4.1 NRT的Storm解决方案 9 n 1.4.2 NRT的Spark解决方案 10 n 1.5 Lambda架构—分析可能性 11 n 1.6 物联网—想法与可能性 13 n 1.7 云—考虑NRT和物联网 17 n 1.8 小结 18 n 第 2章 实时应用的基本组件 19 n 2.1 NRT系统及其构建模块 19 n 2.1.1 数据采集 21 n 2.1.2 流处理 22 n 2.1.3 分析层—服务终端用户 23 n 2.2 NRT的高级系统视图 25 n 2.3 NRT的技术视图 26 n 2.3.1 事件生产者 27 n 2.3.2 数据收集 27 n 2.3.3 代理 29 n 2.3.4 转换和处理 31 n 2.3.5 存储 32 n 2.4 小结 32 n n 第二部分 搭建基础设施 n n 第3章 了解和跟踪数据流 34 n 3.1 了解数据流 34 n 3.2 为数据提取安装基础设施 35 n 3.2.1 Apache Kafka 35 n 3.2.2 Apache NiFi 36 n 3.2.3 Logstash 41 n 3.2.4 Fluentd 43 n 3.2.5 Flume 46 n 3.3 将数据从源填到处理器—期望和注意事项 48 n 3.4 比较与选择适合用例的实践 49 n 3.5 小试牛刀 49 n 3.6 小结 51 n 第4章 安装和配置Storm 52 n 4.1 Storm概述 52 n 4.2 Storm架构和组件 53 n 4.2.1 特征 54 n 4.2.2 组件 54 n 4.2.3 流分组 56 n 4.3 安装和配置Storm 57 n 4.3.1 安装Zookeeper 57 n 4.3.2 配置Apache Storm 59 n 4.4 在Storm上实时处理任务 61 n 4.5 小结 67 n 第5章 配置Apache Spark和Flink 68 n 5.1 安装并快速运行Spark 68 n 5.1.1 源码构建 69 n 5.1.2 下载Spark安装包 69 n 5.1.3 运行示例 70 n 5.2 安装并快速运行Flink 73 n 5.2.1 使用源码构建Flink 73 n 5.2.2 下载Flink 74 n 5.2.3 运行示例 75 n 5.3 安装并快速运行Apache Beam 79 n 5.3.1 Beam模型 79 n 5.3.2 运行示例 80 n 5.3.3 MinimalWordCount示例 82 n 5.4 Apache Beam中的平衡 85 n 5.5 小结 88 n n 第三部分 Storm实时计算 n n 第6章 集成Storm与数据源 90 n 6.1 RabbitMQ有效的消息传递 90 n 6.2 RabbitMQ交换器 91 n 6.2.1 直接交换器 91 n 6.2.2 RabbitMQ安装配置 93 n 6.2.3 RabbitMQ的发布和订阅 95 n 6.3 RabbitMQ与Storm集成 99 n 6.4 PubNub数据流发布者 107 n 6.5 将Storm和RMQ_PubNub传感器数据拓扑串在一起 111 n 6.6 小结 114 n 第7章 从Storm到Sink 115 n 7.1 安装并配置Cassandra 115 n 7.1.1 安装Cassandra 116 n 7.1.2 配置Cassandra 117 n 7.2 Storm和Cassandra拓扑 118 n 7.3 Storm和IMDB集成处理维度数据 120 n 7.4 集成表示层与Storm 122 n 7.5 小试牛刀 134 n 7.6 小结 143 n 第8章 Storm Trident 144 n 8.1 状态保持和Trident 144 n 8.1.1 事务性spout 145 n 8.1.2 不透明事务性spout 145 n 8.2 基本Storm Trident拓扑 146 n 8.3 Trident内部实现 148 n 8.4 Trident操作 149 n 8.4.1 函数 149 n 8.4.2 Map函数and FlatMap函数 150 n 8.4.3 peek函数 151 n 8.4.4 过滤器 151 n 8.4.5 窗口操作 152 n 8.4.6 聚合操作 155 n 8.4.7 分组操作 158 n 8.4.8 合并和组合操作 159 n 8.5 DRPC 160 n 8.6 小试牛刀 161 n 8.7 小结 164 n n 第四部分 使用Spark实现实时计算 n n 第9章 运用Spark引擎 166 n 9.1 Spark概述 166 n 9.2 Spark的独特优势 169 n 9.3 Spark用例 172 n 9.4 Spark架构—引擎内部的运行模式 174 n 9.5 Spark的语用概念 176 n 9.6 Spark 2.x—数据框和数据集的出现 178 n 9.7 小结 179 n 第 10章 运用Spark操作 180 n 10.1 Spark—封装和API 180 n 10.2 RDD语用探索 182 n 10.2.1 转换 185 n 10.2.2 动作 190 n 10.3 共享变量—广播变量和累加器 192 n 10.3.1 广播变量 192 n 10.3.2 累加器 195 n 10.4 小结 196 n 第 11章 Spark Streaming 197 n 11.1 Spark Streaming的概念 197 n 11.2 Spark Streaming的简介和体系结构 198 n 11.3 Spark Streaming的封装结构 203 n 11.3.1 Spark Streaming API 203 n 11.3.2 Spark Streaming操作 204 n 11.4 连接Kafka和Spark Streaming 206 n 11.5 小结 208 n n 第五部分 使用Flink实现实时分析 n n 第 12章 运用Apache Flink 210 n 12.1 Flink体系结构和执行引擎 210 n 12.2 Flink的基本组件和进程 213 n 12.3 将源流集成到Flink 215 n 12.3.1 和Apache Kafka集成 215 n 12.3.2 和RabbitMQ集成 218 n 12.4 Flink处理和计算 221 n 12.4.1 Datastream API 221 n 12.4.2 DataSet API 223 n 12.5 Flink持久化 224 n 12.6 FlinkCEP 226 n 12.7 Pattern API 227 n 12.7.1 检测模式 227 n 12.7.2 模式选择 228 n 12.7.3 示例 228 n 12.8 Gelly 229 n 12.9 小试牛刀 231 n 12.10 小结 242 n n 第六部分 综合应用 n n 第 13章 用例研究 244 n 13.1 概述 244 n 13.2 数据建模 245 n 13.3 工具和框架 246 n 13.4 建立基础设施 247 n 13.5 实现用例 252 n 13.5.1 构建数据模拟器 252 n 13.5.2 Hazelcast加载器 259 n 13.5.3 构建Storm拓扑 261 n 13.6 运行用例 272 n 13.7 小结 279
作者介绍
希尔皮·萨克塞纳(Shilpi Saxena)是IT领域的一位技术布道者。她曾涉足多个领域(机器对机器空间、医疗保健、电信、人才招聘和制造业)。在企业解决方案的构思和执行的所有方面,以及在软件行业的产品和服务方面有超过12年的经验。她一直在大数据领域从事设计、管理和提供解决方案,并领导着一支高水平和分布在各地的精英工程师团队。 n n 沙鲁巴·古普塔(Saurabh Gupta)是一名软件工程师,有数十年的IT行业从业经验,目前从事处理和设计在生产中运行的实时和批处理项目的相关工作,主要包括Impala、Storm、NiFi、Kafka等技术以及在AWS上部署Docker,他还参与了各种物联网项目,涉及电信、医疗保健、智能城市、智能汽车等领域。
编辑推荐
1.全书侧重实用性,涵盖从数据的采集、可视化到数据的持久化等各个方面的内容,帮助读者提升自主解决挑战性问题的能力; n 2.本书包括如何设置组件、基础的Demo演示、系统集成、高级用例,以及报警和监控等主题,旨在帮助读者了解当今流行的实时处理工具,如Apache Spark、Apache Flink和Storm; n 3.本书结合实际用例展示上述技术的具体应用,真正将理论运用到实践中,解决实际问题; n 4.通过阅读本书,读者可以掌握实时数据处理和分析的相关知识,并能了解如何以 恰当的方式在生产环境中部署解决方案。