大数据系统构建 可扩展实时数据系统构建原理与最佳实践PDF电子书下载
- 电子书积分:11 积分如何计算积分?
- 作 者:(美)南森·马茨,(美)詹姆斯·沃伦著;马延辉,向磊,魏东琦译
- 出 版 社:北京:机械工业出版社
- 出版年份:2017
- ISBN:7111552942
- 页数:282 页
第1章 大数据的新范式 1
1.1 本书是如何组织的 2
1.2 扩展传统数据库 3
1.2.1 用队列扩展 3
1.2.2 通过数据库分片进行扩展 4
1.2.3 开始处理容错问题 4
1.2.4 损坏问题 5
1.2.5 到底是哪里出错了 5
1.2.6 大数据技术是如何起到帮助作用的 5
1.3 NoSQL不是万能的 6
1.4 基本原理 6
1.5 大数据系统应有的属性 7
1.5.1 鲁棒性和容错性 7
1.5.2 低延迟读取和更新 8
1.5.3 可扩展性 8
1.5.4 通用性 8
1.5.5 延展性 8
1.5.6 即席查询 9
1.5.7 最少维护 9
1.5.8 可调试性 9
1.6 全增量架构的问题 10
1.6.1 操作复杂性 10
1.6.2 实现最终一致性的极端复杂性 11
1.6.3 缺乏容忍人为错误 12
1.6.4 全增量架构解决方案与Lambda架构解决方案 13
1.7 Lambda架构 14
1.7.1 批处理层 15
1.7.2 服务层 16
1.7.3 批处理层和服务层满足几乎所有属性 16
1.7.4 速度层 17
1.8 技术上的最新趋势 19
1.8.1 CPU并不是越来越快 20
1.8.2 弹性云 20
1.8.3 大数据充满活力的开源生态系统 20
1.9 示例应用:SuperWebAnalytics.com 21
1.10 总结 22
第一部分 批处理层 24
第2章 大数据的数据模型 24
2.1 数据的属性 25
2.1.1 数据是原始的 28
2.1.2 数据是不可变的 30
2.1.3 数据是永远真实的 33
2.2 基于事实的数据表示模型 34
2.2.1 事实的示例及属性 34
2.2.2 基于事实的模型的优势 36
2.3 图模式 39
2.3.1 图模式的元素 39
2.3.2 可实施模式的必要性 40
2.4 SuperWebAnalytics.com的完整数据模型 41
2.5 总结 42
第3章 大数据的数据模型:示例 44
3.1 为什么使用序列化框架 44
3.2 Apache Thrift 45
3.2.1 节点 46
3.2.2 边 46
3.2.3 属性 47
3.2.4 把一切组合成数据对象 47
3.2.5 模式演变 48
3.3 序列化框架的局限性 49
3.4 总结 50
第4章 批处理层的数据存储 51
4.1 主数据集的存储需求 52
4.2 为批处理层选择存储方案 53
4.2.1 使用键/值存储主数据集 53
4.2.2 分布式文件系统 54
4.3 分布式文件系统是如何工作的 54
4.4 使用分布式文件系统存储主数据集 56
4.5 垂直分区 58
4.6 分布式文件系统的底层性质 58
4.7 在分布式文件系统上存储SuperWebAnalytics.com的主数据集 60
4.8 总结 61
第5章 批处理层的数据存储:示例 62
5.1 使用HDFS 62
5.1.1 小文件问题 64
5.1.2 转向更高层次的抽象 64
5.2 使用Pail在批处理层存储数据 65
5.2.1 Pail基本操作 66
5.2.2 序列化对象到Pail中 67
5.2.3 使用Pail进行批处理操作 69
5.2.4 使用Pail进行垂直分区 69
5.2.5 Pail文件格式与压缩 71
5.2.6 Pail优点的总结 71
5.3 存储SuperWebAnalytics.com的主数据集 72
5.3.1 Thrift对象的结构化Pail 73
5.3.2 SuperWebAnalytics.com的基础Pail 74
5.3.3 用于垂直分区数据集的分片Pail 75
5.4 总结 78
第6章 批处理层 79
6.1 启发性示例 80
6.1.1 给定时间范围内的页面浏览量 80
6.1.2 性别推理 80
6.1.3 影响力分数 81
6.2 批处理层上的计算 82
6.3 重新计算算法与增量算法 84
6.3.1 性能 85
6.3.2 容忍人为错误 86
6.3.3 算法的通用性 86
6.3.4 选择算法的风格 87
6.4 批处理层中的可扩展性 87
6.5 MapReduce:一种大数据计算的范式 88
6.5.1 可扩展性 89
6.5.2 容错性 91
6.5.3 MapReduce的通用性 92
6.6 MapReduce的底层特性 94
6.6.1 多步计算很怪异 94
6.6.2 手动实现连接非常复杂 94
6.6.3 逻辑和物理执行紧密耦合 96
6.7 管道图——一种关于批处理计算的高级思维方式 97
6.7.1 管道图的概念 97
6.7.2 通过MapReduce执行管道图 101
6.7.3 合并聚合器 101
6.7.4 管道图示例 102
6.8 总结 103
第7章 批处理层:示例 104
7.1 一个例证 105
7.2 数据处理工具的常见陷阱 106
7.2.1 自定义语言 107
7.2.2 不良的可组合抽象 107
7.3 JCascalog介绍 108
7.3.1 JCascalog的数据模型 109
7.3.2 JCascalog查询的结构 110
7.3.3 查询多个数据集 111
7.3.4 分组和聚合器 113
7.3.5 对一个查询示例进行单步调试 114
7.3.6 自定义谓词操作 117
7.4 组合 121
7.4.1 合并子查询 122
7.4.2 动态创建子查询 123
7.4.3 谓词宏 125
7.4.4 动态创建谓词宏 128
7.5 总结 130
第8章 批处理层示例:架构和算法 131
8.1 SuperWebAnalytics.com批处理层的设计 132
8.1.1 所支持的查询 132
8.1.2 批处理视图 132
8.2 工作流概述 135
8.3 获取新数据 137
8.4 URL规范化 137
8.5 用户标识符规范化 138
8.6 页面浏览去重 142
8.7 计算批处理视图 142
8.7.1 给定时间范围内的页面浏览量 143
8.7.2 给定时间范围内的独立访客 143
8.7.3 跳出率分析 144
8.8 总结 145
第9章 批处理层示例:实现 147
9.1 出发点 147
9.2 准备工作流 148
9.3 获取新数据 149
9.4 URL规范化 152
9.5 用户标识符规范化 153
9.6 页面浏览去重 159
9.7 计算批处理视图 159
9.7.1 给定时间范围内的页面浏览量 159
9.7.2 给定时间范围内的独立访客 161
9.7.3 跳出率分析 163
9.8 总结 165
第二部分 服务层 168
第10章 服务层概述 168
10.1 服务层的性能指标 169
10.2 规范化/非规范化问题的服务层解决方案 172
10.3 服务层数据库的需求 173
10.4 设计SuperWebAnalytics.com的服务层 174
10.4.1 给定时间范围内的页面浏览量 175
10.4.2 给定时间范围内的独立访客 175
10.4.3 跳出率分析 176
10.5 对比全增量的解决方案 177
10.5.1 给定时间范围内的独立访客的全增量方案 177
10.5.2 与Lambda架构解决方案的比较 182
10.6 总结 183
第11章 服务层:示例 184
11.1 ElephantDB的基本概念 184
11.1.1 ElephantDB中的视图创建 185
11.1.2 ElephantDB中的视图服务 185
11.1.3 使用ElephantDB 186
11.2 创建SuperWebAnalytics.com的服务层 188
11.2.1 给定时间范围内的页面浏览量 188
11.2.2 给定时间范围内的独立访客数量 191
11.2.3 跳出率分析 191
11.3 总结 192
第三部分 速度层 194
第12章 实时视图 194
12.1 计算实时视图 195
12.2 存储实时视图 197
12.2.1 最终一致性 198
12.2.2 速度层中存储的状态总量 198
12.3 增量计算的挑战 199
12.3.1 CAP原理的有效性 199
12.3.2 CAP原理和增量算法之间复杂的相互作用 201
12.4 异步更新与同步更新 202
12.5 过期实时视图 203
12.6 总结 205
第13章 实时视图:示例 206
13.1 Cassandra的数据模型 206
13.2 使用Cassandra 208
13.3 总结 210
第14章 队列和流处理 211
14.1 队列 211
14.1.1 单消费者队列 212
14.1.2 多消费者队列 214
14.2 流处理 214
14.2.1 队列和工作节点 215
14.2.2 队列和工作节点的缺陷 216
14.3 更高层次的一次一个的流处理 217
14.3.1 Storm模型 217
14.3.2 保证消息处理 221
14.4 SuperWeb.Analytics.com速度层 223
14.5 总结 226
第15章 队列和流处理:示例 227
15.1 使用ApacheStorm定义拓扑结构 227
15.2 Apache Storm集群及其部署 230
15.3 保证消息处理 232
15.4 实现SuperWebAnalytics.com给定时间范围内的独立访客的速度层 233
15.5 总结 237
第16章 微批量流处理 239
16.1 实现有且仅有一次语义 240
16.1.1 强有序处理 240
16.1.2 微批量流处理 241
16.1.3 微批量流处理的拓扑结构 242
16.2 微批量流处理的核心概念 244
16.3 微批量流处理的扩展管道图 245
16.4 完成SuperWebAnalytics.com的速度层 246
16.4.1 给定时间范围内的页面浏览量 246
16.4.2 跳出率分析 247
16.5 另一个跳出率分析示例 251
16.6 总结 252
第17章 微批量流处理:示例 253
17.1 使用Trident 253
17.2 完成SuperWebAnalytics.com的速度层 257
17.2.1 给定时间范围内的页面浏览量 257
17.2.2 跳出率分析 259
17.3 完全容错、基于内存及微批量处理 265
17.4 总结 266
第18章 深入Lambda架构 268
18.1 定义数据系统 268
18.2 批处理层和服务层 270
18.2.1 增量的批处理 270
18.2.2 测量和优化批处理层的资源使用 276
18.3 速度层 280
18.4 查询层 281
18.5 总结 282
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《管理信息系统习题集》郭晓军 2016
- 《信息系统安全技术管理策略 信息安全经济学视角》赵柳榕著 2020
- 《数据库技术与应用 Access 2010 微课版 第2版》刘卫国主编 2020
- 《大数据Hadoop 3.X分布式处理实战》吴章勇,杨强 2020
- 《Power BI数据清洗与可视化交互式分析》陈剑 2020
- 《系统解剖学速记》阿虎医考研究组编 2019
- 《慢性呼吸系统疾病物理治疗工作手册》(荷)瑞克·考斯林克(RikGosselink) 2020
- 《数据失控》(美)约翰·切尼-利波尔德(John Cheney-Lippold)著 2019
- 《社会文化系统中的翻译》姜秋霞,杨正军 2019
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《看漫画学钢琴 技巧 3》高宁译;(日)川崎美雪 2019
- 《优势谈判 15周年经典版》(美)罗杰·道森 2018
- 《社会学与人类生活 社会问题解析 第11版》(美)James M. Henslin(詹姆斯·M. 汉斯林) 2019
- 《海明威书信集:1917-1961 下》(美)海明威(Ernest Hemingway)著;潘小松译 2019
- 《迁徙 默温自选诗集 上》(美)W.S.默温著;伽禾译 2020
- 《上帝的孤独者 下 托马斯·沃尔夫短篇小说集》(美)托马斯·沃尔夫著;刘积源译 2017
- 《巴黎永远没个完》(美)海明威著 2017
- 《剑桥国际英语写作教程 段落写作》(美)吉尔·辛格尔顿(Jill Shingleton)编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019