新書推薦:
《
关键改变:如何实现自我蜕变
》
售價:HK$
77.3
《
超加工人群:为什么有些食物让人一吃就停不下来
》
售價:HK$
99.7
《
历史的教训(浓缩《文明的故事》精华,总结历史教训的独特见解)
》
售價:HK$
62.7
《
不在场证明谜案(超绝CP陷入冤案!日本文坛超新星推理作家——辻堂梦代表作首次引进!)
》
售價:HK$
58.2
《
明式家具三十年经眼录
》
售價:HK$
524.2
《
敦煌写本文献学(增订本)
》
售價:HK$
221.8
《
耕读史
》
售價:HK$
109.8
《
地理计算与R语言 [英] 罗宾·洛夫莱斯 [德]雅纳·蒙乔 [波兰] 雅库布·诺沃萨德
》
售價:HK$
121.0
|
編輯推薦: |
本书综合了大数据离线分析所需的主流技术Storm Apache HBase Zookeeper Kafka,并配以案例和丰富的辅助学习资源,足以满足广大学习者入门的需要。
|
內容簡介: |
本书定位于大数据专业核心技术实时计算,重点讨论大数据应用场景中的数据特点和应用需求的实时流计算技术。 本书通过对分布式实时计算系统的分析,将学习部分按功能性质划分成四个模块,分别为Kafka数据流处理模块、Strom实时计算模块、HBase数据存储模块和Zookeeper分布式协调模块。对此四个工作模块进行教学化处理,形成HBase基础操作、Zookeeper集群管理、配置Storm集群等核心课程体系,并配以实例使学习者便于理解,易于上手,掌握实时计算Storm相关的基础知识和实际业务系统的开发能力。 本书主要针对具有一定软件编程基础(特别是数据技术)的学生和专业工程师,特别是数据科学、数据分析专业的高年级本科学生以及从事与数据相关的高级技术人员的读者人群。
|
目錄:
|
目录
第1章分布式实时计算系统
1.1分布式的概念
1.1.1分布式系统
1.1.2分布式计算
1.2分布式通信
1.2.1分布式通信基础
1.2.2消息队列
1.2.3Storm计算模型
1.3分布式实时计算系统架构
1.3.1数据获取Kafka
1.3.2数据处理Storm
1.3.3数据存储HBase
1.4系统架构
本章小结
习题
第2章初识Kafka
2.1什么是Kafka
2.1.1Kafka概述
2.1.2使用场景
2.1.3Kafka基本特性
2.1.4性能
2.1.5总结
2.1.6Kafka在LinkedIn中的应用
2.2Topics和logs
2.3分布式consumers和producers
本章小结
习题
第3章Kafka环境搭建
3.1服务器搭建
3.2开发环境搭建
本章小结
习题
第4章Kafka消息传送
4.1消息传输的事务定义
4.2性能优化
4.2.1消息集
4.2.2数据压缩
4.3生产者和消费者
4.3.1Kafka生产者的消息发送
4.3.2Kafka consumer
4.4主从同步
4.5客户端API
4.5.1Kafka producer API
4.5.2Kafka consumer API
4.6消息和日志
本章小结
习题
第5章Zookeeper开发
5.1Zookeeper的来源
5.2Zookeeper基础
5.2.1基本概念
5.2.2Zookeeper架构
5.3Zookeeper的API
5.3.1建立会话
5.3.2管理权
5.3.3节点注册
5.3.4任务队列化
5.4状态变化处理
5.5故障处理
5.6Zookeeper集群管理
5.6.1集群配置
5.6.2集群管理
本章小结
习题
第6章初识HBase
6.1什么是HBase
6.1.1大数据的背景
6.1.2HBase架构
6.1.3HBase存储API
6.2HBase部署
6.2.1HBase配置及安装
6.2.2运行模式
6.2.3集群操作
本章小结
习题
第7章HBase基础操作
7.1CRUD操作
7.1.1Put操作
7.1.2Get操作
7.1.3Delete操作
7.2批处理操作
7.3行锁
7.4扫描
7.5其他操作
7.5.1HTable方法
7.5.2Bytes方法
本章小结
习题
第8章HBase高阶特性
8.1过滤器
8.1.1什么是过滤器
8.1.2比较过滤器
8.1.3专用过滤器
8.1.4附加过滤器
8.2计数器
8.2.1什么是计数器
8.2.2单计数器及多计数器
8.3协处理器
8.3.1什么是协处理器
8.3.2协处理器API应用
本章小结
习题
第9章管理HBase
9.1HBase数据描述
9.1.1表
9.1.2列簇
9.1.3属性
9.2表管理API
9.2.1基础操作
9.2.2集群管理
本章小结
习题
第10章初识Storm
10.1什么是Storm
10.1.1Storm能做什么
10.1.2Storm的特性
10.1.3Storm分布式计算结构
10.2构建topology
10.2.1Storm的基本概念
10.2.2构建topology
10.2.3示例: 单词计数
10.3Storm并发机制
10.3.1topology并发机制
10.3.2给topology增加Worker
10.3.3配置Executor和task
10.4数据流分组的理解
10.5消息的可靠处理
10.5.1消息被处理后会发生什么
10.5.2Storm可靠性的实现方法
10.5.3调整可靠性
本章小结
习题
第11章配置Storm集群
11.1Storm集群框架介绍
11.1.1理解nimbus守护进程
11.1.2supervisor守护进程的工作方式
11.1.3DRPC服务工作机制
11.1.4Storm的UI简介
11.2在Linux上安装Storm
11.2.1搭建Zookeeper集群
11.2.2安装Storm依赖库
11.2.3下载并解压Storm发布版本
11.2.4修改storm.yaml配置文件
11.2.5启动Storm后台进程
11.3将topology提交到集群上
本章小结
习题
第12章Trident和TridentML
12.1Trident topology
12.1.1Trident综述
12.1.2Reach
12.1.3字段和元组
12.1.4状态
12.1.5Trident topology的执行
12.2Trident接口
12.2.1综述
12.2.2本地分区操作
12.2.3重新分区操作
12.2.4群聚操作
12.2.5流分组操作
12.2.6合并和连接
12.3Trident状态
12.3.1事务spouts
12.3.2透明事务spouts
12.3.3非事务spouts
12.3.4Spout和State总结
12.3.5State应用接口
12.3.6MapState的更新
12.3.7执行MapState
12.4TridentML: 基于storm的实时在线机器学习库
本章小结
习题
第13章DRPC模式
13.1DRPC概述
13.2DRPC自动化组件
13.3本地模式DRPC
13.4远程模式DRPC
13.5一个更复杂的例子
本章小结
习题
第14章Storm实战
14.1网站页面浏览量计算
14.1.1背景介绍
14.1.2体系结构
14.1.3项目相关介绍
14.1.4Storm编码实现
14.1.5运行topology
14.2网站用户访问量计算
14.2.1背景介绍
14.2.2Storm代码实现
14.2.3运行topology
本章小结
习题
参考文献
|
內容試閱:
|
前言
为什么要写这本书由于目前对信息高时效性、可操作性需求的不断增长,软件系统需要在更少的时间内处理更多的数据。随着可连接设备的不断增加以及在各行各业的广泛应用,这种需求已经无处不在。传统企业的运营系统被迫需要处理原先只有在互联网公司才会遇到的海量数据。这种转变正在不断改变传统的架构和解决方案,将在线事务处理和离线分析分隔开。与此同时,人们正在重新思考从数据中提取信息的意义和价值。计算系统的框架和基础设施也在逐步进化,以适应这种新场景。具体来说,数据的生成可以看作是一连串发生的离散事件,这些事件会伴随着不同的数据流、操作和分析,最后交由一个通用的实时计算处理系统进行处理。一个成熟的实时计算处理框架主要包括四个模块: 数据获取模块、数据传输模块、数据存储模块和数据处理模块。作为现在流行的实时计算处理框架,Storm提供了可容错分布式计算所需的基本原语和保障机制,可以满足大容量的关键业务应用的需求。它不但是一套技术的整合,也是一种数据流和控制的机制。很多大公司都将Storm作为大数据处理平台的核心部分。同样,由于通用关系型数据库在数据剧增时会出现系统扩展性和延迟的问题,因此业界出现了一类面向半结构化数据存储和处理的高可扩展、低写入查询延迟的系统,例如键值存储系统、文档存储系统和类BigTable存储系统等,这些系统统称为NoSQL系统。Apache HBase就是其中已迈向实用的成熟系统,并已成功应用于互联网服务领域和传统行业的众多在线式数据分析处理系统中。然而,分布式的构建并不容易。人们日常使用的应用大多基于分布式系统,在短时间内分布式系统的现状并不会改变。Apache Zookeeper旨在减轻构建健壮的分布式系统的任务。Zookeeper基于分布式计算的核心概念而设计,主要给开发人员提供一套容易理解和开发的接口,从而简化分布式系统构建的任务。近年来,活动和运营数据处理已经成为网站软件产品特性中一个至关重要的组成部分,需要一个更加复杂的基础设施对其提供支持。Kafka作为一个分布式的消息系统,以可水平扩展和高吞吐率而被广泛使用,Kafka的目的是提供一个发布订阅解决方案,它可以处理消费者规模网站中的所有动作流数据,即通过集群机来提供实时的消费。本书对实时计算系统进行了全面的介绍,章节组织由浅入深,内容阐述细致入微且贴近实际,可以作为参考书以方便读者在开发过程中随时查阅。我相信,本书对实时计算系统的使用者和开发者来说都是及时和不可或缺的。读者对象本书适合以下读者阅读。(1) 大数据技术的学习者和爱好者。(2) 有Java基础的开发者。(3) 大数据实时计算技术开发者。(4) 实时计算集群维护者。(5) 分布式实时计算系统相关维护人员。如何阅读本书本书共分为五个部分。第一部分为简介。简介部分为第1章,主要介绍了分布式实时计算系统的相关知识,从分布式的基本概念到分布式通信的原理,最后引出分布式实时计算架构的四个模块Kafka、Storm、Zookeeper和HBase。
第二部分为数据获取模块Kafka的相关介绍,包括第2章~第4章。本部分介绍了Kafka的相关基础知识和应用知识,让读者了解Kafka的结构、环境搭建方式以及消息传输方式等。本部分首先介绍了Kafka的基本概念,引出了Kafka的基本特性以及Kafka分布式系统架构中关于生产者和消费者的介绍。随后介绍了Kafka的环境搭建方法,最后介绍了Kafka消息传送方面的知识,包括性能优化、主从同步以及客户端API等信息,同时解释了消息和日志方面的相关概念。第三部分为数据调度模块Zookeeper的相关介绍,包括第5章。本部分讲解了Zookeeper相关的基础知识和开发知识,让读者了解Zookeeper的来源、性质及基本概念、Zookeeper开发的应用方法及实现方式、Zookeeper集群的配置及管理方法等。本部分首先介绍了分布式协作存在的三大难点,引出了FLP定律和CAP定律。接着从Zookeeper的Znode类型、通知机制、Lead选择方法等方面介绍Zookeeper的基本概念。随后介绍了Zookeeper的两种运行模式、架构及其应用场景,并详细介绍了Zookeeper可调用的多种API用法,包含会话建立、管理权获取、节点注册、任务队列化等。最后介绍了Zookeeper集群管理的需求及方法,同时解释了动态选举的过程。第四部分为数据存储模块HBase的相关介绍,包括第6章~第9章。本部分首先介绍了HBase的架构以及存储API,然后介绍了HBase的基础操作,包括put、get、delete操作,批处理操作以及HTable、Bytes等其他操作。随后介绍了HBase的高阶特性,包括过滤器、计数器、协处理器等。最后介绍了HBase管理部分的内容,包括HBase的数据描述方式以及表管理API等。第五部分为数据处理模块Storm的相关介绍,包括第10章~第14章。本部分首先对Storm的基本概念进行介绍,包括Storm的基本特性、topology的构建方式、Storm的并发机制以及数据流分组等相关知识。随后介绍了在Linux上配置Storm集群的相关方法以及如何将topology提交到Storm集群上运行。从Trident的topology、接口、状态等方面介绍了trident的相关知识,同时介绍了一种基于Storm的实时在线机器学习库TridentML,从各个组件对DRPC进行介绍。最后通过两个具体的Storm项目实例让读者对Storm有更深刻的理解。编者2018年5月
|
|