前言
本书给出了实时大数据计算领域的许多技巧和经验,介绍了Flink、Spark和Storm等流处理框架技术。本书还归纳了一些实用的技术,以帮助读者像使用Hadoop批处理一样的方式实时处理无界流数据。读者可以从如何搭建开发环境开始,逐步实现流处理,然后学会如何利用Rabbit MQ、Kafka和NiFi以及Storm、Spark、Flink和Beam等组件协同应用来解决实际问题。通过学习本书的内容,读者可以对NRT的基本原理及应用有透彻的理解,并能掌握如何将这些基础知识应用到任何适用的实际问题当中。
本书采用“菜谱”(Cookbook)式的写作风格,辅以丰富的实际案例,包括注释清楚的代码示例、相应的图表等。
本书内容概述
第一部分 导言——熟悉实时分析 本部分主要带领读者熟悉实时分析领域,了解它的基础组件和基于此构建的系统,包括如下几章:
●第1章 实时分析简介
●第2章 实时应用的基本组件
第二部分 搭建基础设施 本部分主要讲解如何由基础组件搭建基础设施,包括如下几章:
●第3章 了解和跟踪数据流
●第4章 安装和配置Strom
●第5章 配置Apache Spark和Flink
第三部分 Storm实时计算 本部分主要关注Strom的计算能力和它的各种特性,包括如下几章:
●第6章 集成Storm与数据源
●第7章 从Storm到Sink
●第8章 Storm Trident
第四部分 使用Spark实现实时计算 本部分主要关注Spark的计算能力和它的相关特性,包括如下几章:
●第9章 运用Spark引擎
●第10章 运用Spark操作
●第11章 Spark Streaming
第五部分 使用Flink实现实时分析 本部分主要关注Flink的计算能力和它的相关特性,包括如下一章:
●第12章 运用Apache Flink
第六部分 综合应用 本部分包括如下一章:
●第13章 用例研究
阅读基础
本书旨在引导读者逐步掌握实时流处理技术。在阅读本书之前,读者应具备基本的Java和Scala编程基础,还应熟悉Maven、Java和Eclipse的安装和配置流程,以便运行示例程序。
读者对象
如果读者是Java开发人员,想要安装相关软件并设计一个端到端的实时数据流的实用解决方案,那么本书非常适合作为参考书。掌握实时处理的基本知识是很有帮助的,了解Maven、Shell和Eclipse的基本原理也对读者大有裨益。
本书约定
在本书中,读者会发现许多文本样式,可以据此区分不同种类的信息。下面给出了这些样式的一些例子,并对它们的含义进行了解释。文本中的代码、数据库表名、文件夹名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄表示为:“下载kafka_2.11-0.10.1.1.tgz文件后,提取文件。”
代码块设置如下:
cp kafka_2.11-0.10.1.1.tgz/home/ubuntu/demo/kafka cd/home/ubuntu/demo/kafka tar-xvf kafka_2.11-0.10.1.1.tgz
新术语和重要单词以粗体显示。读者在截屏图中看到的单词(例如,在菜单或对话框中)在文本中表示为:“为了下载新模块,我们将转到Files | Settings | Project Name | Project Interpreter。”
警告或重要注释的形式如下。
__________________________________
警告内容。
__________________________________
提示和窍门的形式如下。
__________________________________
提示内容。
__________________________________