作者: [美] 南森·马茨[美] 詹姆斯·沃伦
出版社: 机械工业出版社
出版年: 2016-12
ISBN: 9787111552949
~~滚到底部有网盘下载链接~~
内容简介
本书将教你充分利用集群硬件优势的Lambda架构,以及专门用来捕获和分析网络规模数据的新工具,来创建这些系统。它将描述一个可扩展的、易于理解大数据系统的方法——可以由小团队构建并运行。本书共18章,除了介绍基本概念,其他章节采用“理论+示例”的方式来阐释相关概念,并使用现实世界中的工具加以论证。其中,第1章介绍了数据系统的原理,给出了Lambda架构的概述,并概述了构建任何数据系统的广义方法。第2~9章集中阐述Lambda架构的批处理层。第10章和第11章集中阐述服务层,让读者了解只批量写入的特定数据库——这些数据库比传统数据库更简单,它们具有出色的性能,并具备可操作性、稳健性等特点。第12~17章集中阐述速度层,让读者更明确地了解NoSQL数据库、流处理和管理增量计算的复杂性。 第18章通过综合回顾Lambda架构的相关知识,帮助读者了解增量批处理、基本Lambda架构的变种,以及如何充分利用资源。
马延辉,资深Hadoop技术专家,对Hadoop生态系统相关技术有着深刻的理解,在Hadoop开发和运维方面积累了丰富的经验。曾就职于阿里、Answers.com、暴风等互联网公司,从事Hadoop相关的研发和运维工作,对大数据技术的企业级落地、研发、运维和管理有着深刻的理解和丰富的实战经验。开源HBase监控工具Ella作者。现在致力于大数据技术在传统行业的落地和大数据技术的普及和推广。
向磊,前暴风影音数据平台架构师,目前在某垂直电商平台担任技术总监,惠普中国Hadoop相关课程讲师。开源项目EasyHadoop、phpHiveAdmin作者,对Hadoop及其周边生态系统的底层运维及开发、集群自动化运维、网络架构设计、集群安全、性能优化、嵌入式编程方面有较深入了解。
魏东琦,博士,长期从事软件研发工作,现就职于中国地质调查局西安地质调查中心,参加、承担过多项科研项目。现致力于地质行业与大数据技术融合的相关研究工作。
马延辉,资深Hadoop技术专家,对Hadoop生态系统相关技术有着深刻的理解,在Hadoop开发和运维方面积累了丰富的经验。曾就职于阿里、Answers.com、暴风等互联网公司,从事Hadoop相关的研发和运维工作,对大数据技术的企业级落地、研发、运维和管理有着深刻的理解和丰富的实战经验。开源HBase监控工具Ella作者。现在致力于大数据技术在传统行业的落地和大数据技术的普及和推广。
向磊,前暴风影音数据平台架构师,目前在某垂直电商平台担任技术总监,惠普中国Hadoop相关课程讲师。开源项目EasyHadoop、phpHiveAdmin作者,对Hadoop及其周边生态系统的底层运维及开发、集群自动化运维、网络架构设计、集群安全、性能优化、嵌入式编程方面有较深入了解。
魏东琦,博士,长期从事软件研发工作,现就职于中国地质调查局西安地质调查中心,参加、承担过多项科研项目。现致力于地质行业与大数据技术融合的相关研究工作。
目录
译者序
前言
关于本书
致谢
第1章 大数据的新范式
1.1 本书是如何组织的
1.2 扩展传统数据库
1.3 NoSQL不是万能的
1.4 基本原理
1.5 大数据系统应有的属性
1.6 全增量架构的问题
1.7 Lambda架构
1.8 技术上的最新趋势
1.9 示例应用:SuperWebAnalytics.com
1.10 总结
第一部分 批处理层
第2章 大数据的数据模型
2.1 数据的属性
2.2 基于事实的数据表示模型
2.3 图模式
2.4 SuperWebAnalytics.com的完整数据模型
2.5 总结
第3章 大数据的数据模型:示例
3.1 为什么使用序列化框架
3.2 Apache Thrift
3.3 序列化框架的局限性
3.4 总结
第4章 批处理层的数据存储
4.1 主数据集的存储需求
4.2 为批处理层选择存储方案
4.3 分布式文件系统是如何工作的
4.4 使用分布式文件系统存储主数据集
4.5 垂直分区
4.6 分布式文件系统的底层性质
4.7 在分布式文件系统上存储SuperWebAnalytics.com的主数据集
4.8 总结
第5章 批处理层的数据存储:示例
5.1 使用HDFS
5.2 使用Pail在批处理层存储数据
5.3 存储SuperWebAnalytics.com的主数据集
5.4 总结
第6章 批处理层
6.1 启发性示例
6.2 批处理层上的计算
6.3 重新计算算法与增量算法
6.4 批处理层中的可扩展性
6.5 MapReduce:一种大数据计算的范式
6.6 MapReduce的底层特性
6.7 管道图——一种关于批处理计算的高级思维方式
6.8 总结
第7章 批处理层:示例
7.1 一个例证
7.2 数据处理工具的常见陷阱
7.3 JCascalog介绍
7.4 组合
7.5 总结
第8章 批处理层示例:架构和算法
8.1 SuperWebAnalytics.com批处理层的设计
8.2 工作流概述
8.3 获取新数据
8.4 URL规范化
8.5 用户标识符规范化
8.6 页面浏览去重
8.7 计算批处理视图
8.8 总结
第9章 批处理层示例:实现
9.1 出发点
9.2 准备工作流
9.3 获取新数据
9.4 URL规范化
9.5 用户标识符规范化
9.6 页面浏览去重
9.7 计算批处理视图
9.8 总结
第二部分 服务层
第10章 服务层概述
10.1 服务层的性能指标
10.2 规范化/非规范化问题的服务层解决方案
10.3 服务层数据库的需求
10.4 设计SuperWebAnalytics.com的服务层
10.5 对比全增量的解决方案
10.6 总结
第11章 服务层:示例
11.1 ElephantDB的基本概念
11.2 创建SuperWebAnalytics.com的服务层
11.3 总结
第三部分 速度层
第12章 实时视图
12.1 计算实时视图
12.2 存储实时视图
12.3 增量计算的挑战
12.4 异步更新与同步更新
12.5 过期实时视图
12.6 总结
第13章 实时视图:示例
13.1 Cassandra的数据模型
13.2 使用Cassandra
13.3 总结
第14章 队列和流处理
14.1 队列
14.2 流处理
14.3 更高层次的一次一个的流处理
14.4 SuperWebAnalytics.com速度层
14.5 总结
第15章 队列和流处理:示例
15.1 使用Apache Storm定义拓扑结构
15.2 Apache Storm集群及其部署
15.3 保证消息处理
15.4 实现SuperWebAnalytics.com给定时间范围内的独立访客的速度层
15.5 总结
第16章 微批量流处理
16.1 实现有且仅有一次语义
16.2 微批量流处理的核心概念
16.3 微批量流处理的扩展管道图
16.4 完成SuperWebAnalytics.com的速度层
16.5 另一个跳出率分析示例
16.6 总结
第17章 微批量流处理:示例
17.1 使用Trident
17.2 完成SuperWebAnalytics.com的速度层
17.3 完全容错、基于内存及微批量处理
17.4 总结
第18章 深入Lambda架构
18.1 定义数据系统
18.2 批处理层和服务层
18.3 速度层
18.4 查询层
18.5 总结
前言
关于本书
致谢
第1章 大数据的新范式
1.1 本书是如何组织的
1.2 扩展传统数据库
1.3 NoSQL不是万能的
1.4 基本原理
1.5 大数据系统应有的属性
1.6 全增量架构的问题
1.7 Lambda架构
1.8 技术上的最新趋势
1.9 示例应用:SuperWebAnalytics.com
1.10 总结
第一部分 批处理层
第2章 大数据的数据模型
2.1 数据的属性
2.2 基于事实的数据表示模型
2.3 图模式
2.4 SuperWebAnalytics.com的完整数据模型
2.5 总结
第3章 大数据的数据模型:示例
3.1 为什么使用序列化框架
3.2 Apache Thrift
3.3 序列化框架的局限性
3.4 总结
第4章 批处理层的数据存储
4.1 主数据集的存储需求
4.2 为批处理层选择存储方案
4.3 分布式文件系统是如何工作的
4.4 使用分布式文件系统存储主数据集
4.5 垂直分区
4.6 分布式文件系统的底层性质
4.7 在分布式文件系统上存储SuperWebAnalytics.com的主数据集
4.8 总结
第5章 批处理层的数据存储:示例
5.1 使用HDFS
5.2 使用Pail在批处理层存储数据
5.3 存储SuperWebAnalytics.com的主数据集
5.4 总结
第6章 批处理层
6.1 启发性示例
6.2 批处理层上的计算
6.3 重新计算算法与增量算法
6.4 批处理层中的可扩展性
6.5 MapReduce:一种大数据计算的范式
6.6 MapReduce的底层特性
6.7 管道图——一种关于批处理计算的高级思维方式
6.8 总结
第7章 批处理层:示例
7.1 一个例证
7.2 数据处理工具的常见陷阱
7.3 JCascalog介绍
7.4 组合
7.5 总结
第8章 批处理层示例:架构和算法
8.1 SuperWebAnalytics.com批处理层的设计
8.2 工作流概述
8.3 获取新数据
8.4 URL规范化
8.5 用户标识符规范化
8.6 页面浏览去重
8.7 计算批处理视图
8.8 总结
第9章 批处理层示例:实现
9.1 出发点
9.2 准备工作流
9.3 获取新数据
9.4 URL规范化
9.5 用户标识符规范化
9.6 页面浏览去重
9.7 计算批处理视图
9.8 总结
第二部分 服务层
第10章 服务层概述
10.1 服务层的性能指标
10.2 规范化/非规范化问题的服务层解决方案
10.3 服务层数据库的需求
10.4 设计SuperWebAnalytics.com的服务层
10.5 对比全增量的解决方案
10.6 总结
第11章 服务层:示例
11.1 ElephantDB的基本概念
11.2 创建SuperWebAnalytics.com的服务层
11.3 总结
第三部分 速度层
第12章 实时视图
12.1 计算实时视图
12.2 存储实时视图
12.3 增量计算的挑战
12.4 异步更新与同步更新
12.5 过期实时视图
12.6 总结
第13章 实时视图:示例
13.1 Cassandra的数据模型
13.2 使用Cassandra
13.3 总结
第14章 队列和流处理
14.1 队列
14.2 流处理
14.3 更高层次的一次一个的流处理
14.4 SuperWebAnalytics.com速度层
14.5 总结
第15章 队列和流处理:示例
15.1 使用Apache Storm定义拓扑结构
15.2 Apache Storm集群及其部署
15.3 保证消息处理
15.4 实现SuperWebAnalytics.com给定时间范围内的独立访客的速度层
15.5 总结
第16章 微批量流处理
16.1 实现有且仅有一次语义
16.2 微批量流处理的核心概念
16.3 微批量流处理的扩展管道图
16.4 完成SuperWebAnalytics.com的速度层
16.5 另一个跳出率分析示例
16.6 总结
第17章 微批量流处理:示例
17.1 使用Trident
17.2 完成SuperWebAnalytics.com的速度层
17.3 完全容错、基于内存及微批量处理
17.4 总结
第18章 深入Lambda架构
18.1 定义数据系统
18.2 批处理层和服务层
18.3 速度层
18.4 查询层
18.5 总结