首页>参考读物>计算机科学与技术>软件与程序设计

分布式实时处理系统:原理、架构与实现
作者 : 卢誉声 著
丛书名 : 大数据技术丛书
出版日期 : 2016-06-27
ISBN : 978-7-111-53996-4
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 501
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

全书分为3篇:
1. 第一篇详细讲解本书将要开发的分布式实时计算系统所涉及的相关技术,特别针对C++11的新特性着重介绍。
2. 第二篇剖析分布式计算系统编程细节,其中对每个重要的概念、模型和函数都加以阐述。
3. 第三篇主要关注实战用例,将编写数个极具实践价值的应用程序,为开发者提供参考。
通过阅读本书,读者不仅能开发出一套基于C/C++实现的分布式实时计算系统,而且还可以以此学习和了解服务器编程接口设计以及UNIX服务器开发的多个重要主题,对未来实际应用与开发提供参考。

图书特色

多位大数据专家联袂推荐,资深系统研发工程师撰写,参透大规模分布式实时处理系统
抽丝剥茧,从概念、原理到分布式实时计算框架实现,兼顾理论与实践,带领读者逐步实现一个基于C++ 11、高性能的分布式实时处理系统

本书不但讲解高性能分布式实时处理系统编程的原理,特别是对于内存资源管理、编码解决方案、并发与异步处理、线程模型、批处理与实时处理的区别、消息队列、动态装载等作了详细介绍,还深入分析了实时处理系统的架构以及内部实现,最后详细分析了怎么样实现一套分布式实时处理系统Hurricane。本书非常适合大数据开发人员和架构师阅读,同时可以解决性能优化的很多问题。
—— 卢亿雷 AdMaster技术副总裁兼总架构师

分布式系统可以追溯到20世纪60年代的ARPANET。随着物联网、边缘计算和其他相关领域的蓬勃发展,对高性能分布式实时处理系统的需求日益增多。这本技术专著着眼于实际分布式框架的编程应用,将助力有志于该领域的软件开发人员。
—— 安宁 Oracle空间数据部门首席工程师

本书将对自己的C++编程、分布式存储系统、分布式计算框架、分布式通信等知识进行洗礼,不知不觉间就提升了自己的层次,期待阅读本书之后,也可以构建一个全新的分布式实时处理系统,变成分布式实时计算领域的贡献者。
—— 于俊 科大讯飞大数据专家

本书由浅到深,从基础的分布式系统的概念、网络通信和C++ 11高性能编程,到流处理中的消息、消息源、处理单元、收集器、计算拓扑等重要抽象的实现,到日志处理、频繁组合等典型应用,深入研究了一个典型分布式流处理系统的各个重要方面,推荐。
—— 蔡斌 腾讯科技高级工程师

卢誉声 Autodesk资深系统研发工程师,从事平台架构方面的研发工作。在此之前,他曾在思科系统(中国)研发中心云产品研发部工作多年,全程参与了海量数据实时处理、分析系统的构建与实施,并参与了大规模分布式系统的服务器后端、前端以及SDK的设计与研发工作,在分布式系统设计与实现、性能调优、高可用性和自动化等方面积累了丰富的敏捷实践与开发经验。精通C/C++,致力于高性能平台架构的研究与开发。此外,对JavaScript、Lua以及移动开发平台等也有一定研究。译有《Storm实时数据处理》《高级C/C++编译技术》《JavaScript编程精解(原书第2版)》。

多位大数据专家联袂推荐,资深系统研发工程师撰写,参透大规模分布式实时处理系统。抽丝剥茧,从概念、原理到分布式实时计算框架实现,兼顾理论与实践,带领读者逐步实现一个高性能、基于C++ 11的分布式实时处理系统Hurricane。
第1~5章,分布式实时处理基石。
这部分涵盖分布式系统原理与特性,分布式系统通信基础与高层抽象, C++ 11的高性能编程基础与进阶(内存资源管理、编码解决方案、并发与异步处理、线程模型等),以及Hadoop与Storm基本模型和可靠消息处理的基本思想。同时结合所讲知识带领读者开发公告牌服务、留言板系统等,加深理解。
第6~11章,动手时间!
这部分是本书重点,带领大家实现一个基于C++ 11的高性能分布式实时处理框架,对读者日后的框架理解、开发与定制能力大有裨益。涵盖实时处理系统的总体架构设计,实时处理系统中各接口、服务组件、管理服务组件、可靠消息处理方案,以及底层数据传输层及高性能网络库Meshy(实现可靠的TCP/IP传输和消息队列,提供底层网络传输基础)的设计与实现。
第12~14章,高级技能get!
这部分介绍一些实用的高级技能。涵盖事务性拓扑实现方案,多语言接口与优化方案,以及高级抽象元语、DRPC的最佳实践。
第15~17章,用起来!
这部分给出了框架的应用案例,进一步加强读者实践技能。涵盖基于Hurricane开发的日志流处理实例、频繁二项集挖掘系统,以及在AWS和阿里云上部署Hurricane。

图书前言

为什么要写这本书
云计算与大数据为计算机科学领域注入了前所未有的活力,而大数据的实时处理更是为海量数据处理和数据挖掘带来了崭新的契机。从某种意义上讲,传统大数据的批处理方式已经一定程度上解决了我们所面临的问题,由MapReduce、Bulk Synchronous Parallel以及其他计算范式衍生而来的大规模计算集群已经广泛运用于生产环境中。然而,客户的要求是永不满足的。他们想要更多的数据、服务、价值以及更多的便利。随着数据量的增加,对实时响应时间的需求也在提高,原本承载着海量数据处理任务的批处理系统在实时计算处理方面越发显得乏力。这么说的原因很简单,像Hadoop使用的MapReduce这样的数据批处理技术,其设计初衷并不是为了满足实时计算的需求。数据批处理系统与实时处理系统在需求上存在着本质的区别。要做到实时性,不仅需要及时地推送数据以便处理,还要将数据划分成尽可能小的单位,而像HDFS存储推送数据的能力已经远不能满足实时性的需求。
虽然目前Apache Spark等新平台和框架越来越为流行,同时极大提升了批处理的性能,但是由于这些传统批处理系统的运行机制本身,无法从根本上解决实时计算的问题。
因此,随着业务数据规模的爆炸式增长,对数据实时处理能力的需求也越来越大。专注于实时性、规模化的计算平台新时代已经悄然来临。
Apache Storm的出现扭转了传统数据批处理系统的劣势,成为了真正意义上的实时数据处理系统。Storm实时处理系统实现了一个可靠的、高容错性的实时分布式处理平台,那么这些听起来十分抽象的概念到底是如何实现的呢?这其实就是笔者写作本书的目的之一。当笔者深入研究和学习了Storm的内部结构和代码实现之后,就在思考有没有什么办法让其他更多的人少走弯路,并能在实践中对这个看似“神秘”的实时处理系统的设计与实现融会贯通呢?
本书特色
本书是一本由浅入深并详细讲解编写一套全新的基于C/C++的实时处理系统的编程实战书。本书从基础知识开始,到实时数据系统的架构设计,到代码的实际编写,逐步实现一个完整的实时数据处理系统。本书把这套全新的高性能分布式实时处理系统命名为Hurricane,该单词与Storm涵义类似,但略有不同,其中维基百科对Hurricane的解释是“A storm that has very strong fast winds and that moves over water”,即“在水面高速移动的飓风(storm)”。
同时,为了支持高性能的实时处理系统,我们必须提供高性能的网络层,能够支持大量的并发,因此本书设计实现了一套跨平台的网络库Meshy,并将其作为Hurricane实时处理系统的传输层。
为了编写更清晰、易于移植、易于维护的现代化C++代码,我们在书中大量使用了C++ 11的特性,从一些小的语法点(如auto、override)到C++ 11中新增加的库(如thread、chrono、functional)到一些翻天覆地的语法特性(如统一初始化、Lambda表达式)都有所涉及。每当遇到新的C++ 11知识时,我们都会着重向读者介绍。由于目前C++ 14还不够普及成熟,因此在本书中暂不考虑C++ 14的特性。
为此,本书一开始将会花费大量篇幅介绍分布式计算存储的概念以及网络通信的基础知识。接着阐述和分布式计算存储相关的网络高层抽象知识,为构建分布式网络应用打下坚实基础。接着集中介绍本书需要运用的C++相关知识,包括C++ 11的语言特性以及需要了解的底层知识。之后就开始介绍Hurricane实时处理系统的设计方案,并引导读者一步步自己实现Hurricane实时处理系统。
完成Hurricane实时处理系统的主体功能部分后,我们转而介绍Meshy,阐述如何实现Meshy这一跨平台的网络框架,并与Hurricane实时处理系统进行对接。为了实现跨平台的高性能网络通信库,我们必须学习使用epoll、IOCP等与平台密切相关的技术来保证系统性能。同时,我们也要学会如何编写管理一个需要考虑移植和平台兼容性的系统的技巧与实践方法。最后辅以实战用例讲解如何将该系统应用于实际的生产环境中。
总之,Hurricane实时处理系统是一个使用C++ 11编写的,以高性能为关注点的分布式实时计算框架,使用流模型作为计算模型,同时提供更易于理解的高层接口。
希望读者能够从本书中或多或少学到点新的知识,能够对C++语言以及网络通信有更加深入的认识,了解如何构建一个可应用于生产环境的分布式实时处理系统。
如何阅读本书
本书以最基本的云计算与大数据概念作为引子,逐步引入高性能分布式实时处理系统编程所需要的知识,抽丝剥茧地把有关实时处理系统的架构以及内部实现娓娓道来。
第1章 介绍分布式系统的一些基本概念,以及开发实时处理系统所需要具备的一些重要知识点。
第2章 介绍分布式系统通信基础,包括TCP/IP以及Socket方面的基本概念,为后续开发网络库Meshy做知识储备。
第3章 介绍分布式系统通信所需的高层抽象,包括RPC远程过程调用、RESTful、消息队列等常用的通信模型。同时介绍基本的序列化概念与解决方案,并使用Thrift开发简单的公告牌服务,为Hurricane的开发建立通信抽象与框架上的基础概念。
第4章 介绍C++高性能编程所需的基础与进阶知识,包括C++中的内存资源管理、编码解决方案、并发与异步处理以及内存管理技巧,以及C++ 11中与内存管理、编码处理、线程模型相关的内容。
第5章 介绍分布式处理系统的基本概念,包括批处理与实时处理的区别,Hadoop与Storm的基本介绍及基本模型。最后介绍可靠消息处理的基本思想。
第6章 介绍实时处理系统的总体架构与接口设计,包括消息源、消息处理器、数据收集器、元组以及序列化接口。
第7章 介绍服务组件的设计与实现,包括Executor及其消息队列、动态装载以及Task的设计与实现等。
第8章 介绍管理服务的设计与实现,其中包括集群管理器President以及节点管理器Manager的架构设计与编程实现。
第9章 介绍实时处理系统中各部分接口的实现,包括消息源、消息处理单元以及数据收集器的实现。
第10章 介绍可靠消息处理的概念、接口设计与具体实现,包括简单和高效的实现方案。
第11章 介绍底层数据传输层及Meshy的设计与实现,包括I/O多路复用的概念与实现方法、所需的基础工具,以及跨平台的实现方案。最后辅以实战用例来展示集成与使用Meshy的方法。
第12章 介绍事务性计算拓扑的概念、实现方案与编程实现,并介绍相关API,以及如何使用Cassandra存储元数据。
第13章 介绍在不同的编程语言中实现计算拓扑的方法,并在现有技术基础上增加一些新的技术。
第14章 介绍基于Hurricane实时处理系统的高级抽象元语、分布式远程过程调用(DRPC)的设计、实现方案及编程实战。
第15章 介绍了基于Hurricane实时处理系统开发的日志流处理实例,其中包含日志流处理的整体流程、使用Hurricane处理日志的具体实现思路,以及使用Hurricane处理日志的具体实现。
第16章 介绍了基于Hurricane实时处理系统开发的频繁组合查找实例,其中包含频繁项集挖掘概念与方法、频繁二项集挖掘算法原理与实现分布式统计方法。并介绍如何使用Hurricane实现自己的频繁二项集挖掘系统。
第17章 介绍在AWS和阿里云上部署Hurricane实时处理系统,首先介绍在AWS上创建私有云和EC2实例的方法,接着介绍在阿里云上创建私有云和ECS实例的方法,最后介绍Hurricane的分布式部署原理与方法。
阅读前提
本书采用Ubuntu或Debian操作系统以及Windows操作系统作为基本的开发环境。此外,本书并不准备对基础的编程概念进行理论介绍。我们假定你在阅读本书之前已经达到基本的编程技术水平以及具备一定的C++编程经验和功底。如果不是,笔者建议阅读《C++编程思想》作为基础来了解编程的基本概念,并阅读《高级C/C++编译技术》作为提高。
本书版式约定
在本书中,读者会发现针对不同信息类型的文本样式。下面是这些样式的示例和解释。
所有命令行输入和输出如下所示:
mkdir Hurricane
cd Hurricane
代码清单通常以以下格式展现:
1 #include
2 #include
3
4 int main()
5 {
6   std::cout << "Welcome to Hurricane" << std::endl;
7
8   return EXIT_SUCCESS;
9 }
在正文中时常会用以下方式拓展所讲解的内容:
这里是相关提示的文字。
读者对象
(1)大数据系统研发工程师。本书不但讲解高性能分布式实时处理系统编程所需要的方方面面,抽丝剥茧地呈现出实时处理系统的架构以及内部实现,还带领大家自己编写一套分布式实时处理系统。
(2)研发人员。本书是一本深入剖析分布式实时处理系统编号的指南。
(3)架构师。本书是一本层次化分布式系统架构设计的实战书。读者可以深入理解分布式实时处理系统的内部构造以及重要组成部分,并自已设计分布式系统的各个层次。
(4)编程初学者。学习实战技术,掌握分布式系统开发中惯用的编程技巧。
勘误和支持
虽然笔者在编写本书的过程中经过反复审校,全力确保本书内容的准确性,但疏漏在所难免。书中难免可能会出现一些不妥或不准确的描述,恳请读者批评指正。本书所涉及的所有源代码及工程都可以从华章官网(www.hzbook.com)下载,同时这些项目也都是开源项目。现在我怀着期盼和忐忑的心情,将这本著作呈献给大家,我渴望得到你的认可,更渴望和你成为朋友,如果你有任何问题和建议,请与我联系(电子邮箱:samblg@me.com),期待能够得到你的真挚反馈。
致谢
在创作本书的过程中,我得到了很多人的帮助,这里必须要一一感谢,聊表寸心。感谢鲁昌华教授,在我的成长道路上给予了很大的支持和鼓励。感谢我在Autodesk中国研究院(ACRD)的同事和思科系统(中国)研发中心的朋友。特别是我的良师益友彭敏、旷天亮和徐立冰,在我的学习工作中给予了很大帮助。感谢我的好友金柳颀,感谢你在写作本书过程中的通力合作以及技术问题上的共同探讨。还要感谢机械工业出版社的高婧雅编辑对我的信任与支持。
谨以此书献给我最亲爱的家人与朋友,你们是我奋斗路上坚强的后盾。

卢誉声
于上海

上架指导

计算机科学/大数据分析与处理

封底文字

本书不但讲解高性能分布式实时处理系统编程的原理,特别是对于内存资源管理、编码解决方案、并发与异步处理、线程模型、批处理与实时处理的区别、消息队列、动态装载等作了详细介绍,还深入分析了实时处理系统的架构以及内部实现,最后详细分析了怎么样实现一套分布式实时处理系统Hurricane。本书非常适合大数据开发人员和架构师阅读,同时可以解决性能优化的很多问题。
——卢亿雷,Admaster技术副总裁
分布式系统可以追溯到20世纪60年代的ARPANET。随着物联网、边缘计算和其他相关领域的蓬勃发展,对高性能分布式实时处理系统的需求日益增多。这本技术专著着眼于实际分布式框架的编程应用,将助力有志于该领域的软件开发人员。
——安宁,Oracle空间数据部门首席工程师
本书将对自己的C++编程、分布式存储系统、分布式计算框架、分布式通信等知识的进行洗礼,不知不觉间就提升了自己的层次,期待阅读本书之后,也可以构建一个全新的分布式实时处理系统,变成分布式实时计算领域的贡献者。
——于俊,科大讯飞大数据专家
本书由浅到深,从基础的分布式系统的概念、网络通讯和C 高性能编程,到流处理中的消息、消息源、处理单元、收集器、计算拓扑等重要抽象的实现,到日志处理、频繁组合等典型应用,深入研究了一个典型分布式流处理系统的各个重要方面,推荐。
——蔡斌,腾讯科技高级工程师
本书有概念、有理论,有本身知识体系的交代,也有周边必要知识内容的说明,有实战有案例,不空谈,能落地,是一本不可多得的学习分布式实时架构的好书。
——贾锋,知名大数据布道者与践行者

作者简介

卢誉声 著:暂无简介

图书目录

本书赞誉
序一
序二
序三
前言
第1章 分布式计算概述 1
1.1 分布式概念 1
1.2 分布式计算及其原理 2
1.3 分布式系统特性 3
1.3.1 容错性 3
1.3.2 高可扩展性 4
1.3.3 开放性 5
1.3.4 并发处理能力 5
1.3.5 透明性 6
1.4 通用分布式计算系统 6
1.4.1 Apache Hadoop 6
1.4.2 Apache Spark 8
1.4.3 Apache Storm 9
1.5 分布式存储系统 10
1.5.1 分布式存储概念 10
1.5.2 分布式存储系统特点 12
1.5.3 分布式存储系统分类 12
1.5.4 常见分布式存储系统 13
1.6 本章小结 14
第2章 分布式系统通信基础 15
2.1 时代的浪潮 15
2.1.1 集中式通信网 16
2.1.2 去中心化 16
2.2 可靠的数据链路 17
2.2.1 数据分组 17
2.2.2 帧同步 18
2.2.3 差错控制 18
2.2.4 链路管理 18
2.2.5 问题与解决方案 19
2.3 分层架构 19
2.4 网络层 22
2.4.1 寻找路径 22
2.4.2 网络分层 23
2.4.3 TCP/IP概述 23
2.4.4 IP协议 24
2.5 传输层 30
2.5.1 数据自动分包 30
2.5.2 端到端的传输 30
2.5.3 数据的可靠传输 30
2.6 应用层 35
2.6.1 ping 35
2.6.2 telnet 36
2.6.3 OSPF 36
2.6.4 DNS 36
2.6.5 HTTP协议 37
2.7 基于消息协议的公告牌 38
2.7.1 需求描述 38
2.7.2 制定协议 38
2.8 分布式通信举例——MapReduce 39
2.9 本章小结 41
第3章 通信系统高层抽象 42
3.1 RPC介绍 42
3.2 RESTful 44
3.2.1 资源和表现层 45
3.2.2 状态转移 45
3.2.3 RESTful总结 46
3.3 消息队列 46
3.4 序列化 49
3.5 使用Thrift实现公告牌服务 50
3.5.1 Apache Thrift介绍 51
3.5.2 安装Apache Thrift 51
3.5.3 编写Thrift文件 52
3.5.4 实现服务器 53
3.5.5 实现客户端 54
3.6 本章小结 56
第4章 走进C++高性能编程 57
4.1 基于C++的留言板系统 58
4.1.1 基于Socket的通信 58
4.1.2 C++中的内存与资源管理 64
4.2 来自服务器的天书 69
4.2.1 编码 69
4.2.2 C++98的编码缺陷 72
4.2.3 C++11编码支持 73
4.3 繁忙的服务器 75
4.3.1 分身乏术 75
4.3.2 fork——分身术 76
4.3.3 进程间通信 79
4.3.4 轻量级分身——线程 85
4.3.5 C++11线程 86
4.3.6 竞争问题与解决方案 88
4.3.7 多线程优化 95
4.3.8 异步I/O 99
4.4 消失不见的内存 105
4.4.1 内存分配与内存碎片 106
4.4.2 tcmalloc 108
4.4.3 内存池 110
4.5 本章小结 112
第5章 分布式实时处理系统 113
5.1 Hadoop与MapReduce 113
5.1.1 HDFS 114
5.1.2 MapReduce模型 115
5.2 Storm实时处理系统 129
5.2.1 历史 129
5.2.2 计算模型 130
5.2.3 总体架构 133
5.2.4 Storm元数据 133
5.2.5 Storm与Hadoop比较 138
5.3 有保证的消息处理 139
5.3.1 完全处理与元组树 139
5.3.2 元组的唯一标识 139
5.3.3 确认和失败 141
5.3.4 高效实现 143
5.4 本章小结 144
第6章 实时处理系统编程接口设计 145
6.1 总体架构设计 145
6.1.1 Hurricane与Storm比较 145
6.1.2 总体架构 146
6.1.3 任务接口 148
6.2 消息源接口设计 149
6.3 消息处理器接口设计 150
6.4 数据收集器设计 151
6.5 元组接口设计 154
6.6 序列化接口设计 160
6.7 本章小结 161
第7章 服务组件设计与实现 162
7.1 Executor设计与实现 162
7.1.1 事件驱动的消息队列 162
7.1.2 动态装载技术 167
7.1.3 Executor实现 169
7.2 Task设计与实现 171
7.3 本章小结 172
第8章 管理服务设计与实现 173
8.1 President功能与设计 173
8.2 President实现 174
8.2.1 简单的网络通信实现 175
8.2.2 Topology装载实现 182
8.2.3 Manager管理调度实现 184
8.2.4 序列化实现 193
8.3 本章小结 198
第9章 实时处理系统编程接口实现 199
9.1 消息源接口实现 200
9.1.1 消息源执行器 200
9.1.2 WordCount实现实例 205
9.2 消息处理单元接口实现 207
9.2.1 消息处理单元执行器 207
9.2.2 事件处理 212
9.2.3 WordCount实现实例 215
9.3 数据收集器实现 218
9.3.1 分发策略 218
9.3.2 传输层实现 224
9.4 本章小结 226
第10章 可靠消息处理 227
10.1 基本概念 227
10.1.1 完全处理 227
10.1.2 失败与重发 229
10.2 接口设计 229
10.3 具体实现 233
10.3.1 简单实现 233
10.3.2 高效实现 235
10.4 本章小结 237
第11章 通信系统设计与实现 238
11.1 I/O多路复用方案解析 239
11.1.1 基本网络编程接口 239
11.1.2 非阻塞的服务器程序 241
11.1.3 使用select()接口的基于事件驱动的服务器模型 242
11.1.4 使用epoll实现异步事件通知模型 245
11.2 基础工具 249
11.2.1 线程工具 250
11.2.2 日志工具 254
11.3 传输层实现 263
11.3.1 Reactor模式 263
11.3.2 定义抽象TP传输层 264
11.3.3 实现基于epoll的TP传输层 269
11.3.4 实现基于IOCP的TP传输层 290
11.4 应用层HTTP实现 307
11.4.1 HttpContext 307
11.4.2 HttpRequest 311
11.4.3 HttpResponse 313
11.4.4 HttpConnection 315
11.4.5 HttpServer 317
11.4.6 总结 319
11.5 跨平台分割编译 320
11.5.1 Makefile 320
11.5.2 Kake 323
11.6 与实时处理系统集成 325
11.6.1 修改NetListener 325
11.6.2 修改NetConnector 327
11.7 本章小结 330
第12章 事务性Topology实现 331
12.1 Exact-once语义解决方案 331
12.2 设计细节 333
12.2.1 构造事务性Topology 333
12.2.2 消息处理单元 334
12.3 事务性Topology API 337
12.3.1 消息处理单元 337
12.3.2 事务性消息源 339
12.4 本章小结 339
第13章 多语言接口 340
13.1 C语言通用接口 340
13.1.1 元组接口 342
13.1.2 消息源接口 346
13.1.3 消息处理单元接口 349
13.1.4 计算拓扑接口 352
13.2 Python接口 354
13.2.1 ctypes 354
13.2.2 元组接口 356
13.2.3 消息源接口 359
13.2.4 消息处理单元接口 360
13.2.5 计算拓扑接口 361
13.2.6 应用示例 364
13.3 JavaScript接口 365
13.3.1 V8引擎 366
13.3.2 Node.js 366
13.3.3 V8的互操作接口 367
13.3.4 任务接口 368
13.3.5 消息源接口 369
13.3.6 消息处理单元接口 370
13.3.7 计算拓扑接口 371
13.3.8 应用示例 373
13.4 Java接口 375
13.4.1 任务接口 375
13.4.2 消息源接口 376
13.4.3 消息处理单元接口 377
13.4.4 计算拓扑接口 377
13.4.5 本地代码 380
13.4.6 应用示例 382
13.5 Swift接口 384
13.5.1 应用范围 385
13.5.2 任务接口 385
13.5.3 消息源接口 386
13.5.4 消息处理单元接口 387
13.5.5 计算拓扑接口 388
13.6 本章小结 390
第14章 Squared设计与实现——实现高级抽象元语 391
14.1 Storm Trident介绍 391
14.1.1 Squared示例 391
14.1.2 DRPC示例 394
14.2 Squared实现 396
14.2.1 SquaredTopology和Spout 396
14.2.2 SquaredBolt 401
14.2.3 Stream 405
14.2.4 状态存储 410
14.2.5 DRPC实现 412
14.2.6 操作与处理节点 416
14.2.7 流操作 419
14.3 本章小结 423
第15章 实战:日志流处理 425
15.1 日志流处理设计方案 425
15.2 实现Topology 427
15.2.1 编写消息源 427
15.2.2 编写索引消息处理单元 428
15.2.3 编写统计消息处理单元 429
15.3 本章小结 431
第16章 实战:频繁组合查找 432
16.1 背景介绍 432
16.1.1 数据挖掘概念 432
16.1.2 关联规则和频繁项集 433
16.1.3 啤酒与尿布 435
16.2 频繁二项集挖掘方法 435
16.2.1 频繁二项集 435
16.2.2 算法设计思路 438
16.2.3 Hurricane实现思路 439
16.3 编写Spout 439
16.4 编写Bolt 441
16.4.1 SplitBolt 441
16.4.2 PairCountBolt 442
16.4.3 PairTotalCountBolt 443
16.4.4 ConfidenceComputeBolt 444
16.4.5 SupportComputeBolt 445
16.4.6 FilterBolt 447
16.5 编写Topology 448
16.6 本章小结 449
第17章 实战:在AWS和阿里云上部署Hurricane实时处理系统 450
17.1 AWS部署 450
17.1.1 搭建虚拟私有云 452
17.1.2 配置安全组 455
17.1.3 加载EC2实例 456
17.1.4 弹性IP地址管理 461
17.2 阿里云部署 464
17.2.1 创建虚拟私有云 464
17.2.2 管理安全组 467
17.2.3 创建ECS 468
17.2.4 SSH登录 471
17.3 Hurricane分布式部署与管理 471
17.3.1 分布式部署原理 472
17.3.2 分布式安装配置 472
17.3.3 分布式启动 476
17.4 部署分布式实时处理系统 477
17.5 未来之路 478
17.6 本章小结 479

教学资源推荐
作者: (美)Delores M. Etter; Jeanine A. Ingber 著
作者: [美] 托尼·加迪斯(Tony Gaddis) 著
作者: 苏莉蔚 主编 刘威 副主编 姜楠 白洪涛 孙元 参编
作者: (美)Kenneth C.Louden
参考读物推荐
作者: (印度)波哈维·荻西特(Bharvi Dixit)著
作者: (美)David Mark James Bucanek 著
作者: Steven Holzner
作者: [意]卡洛·米拉内西(Carlo Milanesi) 著