热门排行
简介
《寻路大数据 :海量数据与大规模分析》是一本系统化解读大数据工程处理基础技术的书籍。技术热潮已然催生了形形色色的大数据处理技术及工具,但重要的并非鱼与熊掌的孰优孰劣,而是如何选择或组合这些技术并应用于实现不同的商业目标。
《寻路大数据 :海量数据与大规模分析》正是从这个角度评估了针对不同使用场景的大数据处理技术,从而帮助技术负责人及架构师做出不同的选型决策。我很高兴看到了这《寻路大数据 :海量数据与大规模分析》的出版,它必将有益于大数据技术的各种具体实践。
目录
第1 部分 大数据时代指引 1
第1 章 数据成功四原则 3
1.1 当数据成为一件“大”事 3
1.2 数据和单台服务器 4
1.3 大数据的权衡 5
1.3.1 构建可(限)扩展的解决方案 6
1.3.2 构建可(在互联网上)共享数据的系统 7
1.3.3 构建解决方案,而非基础设施 8
1.3.4 关注从数据中解放价值 8
1.4 大数据流水线剖析 9
1.5 终极数据库 10
1.6 总结 10
第2 部分 收集和共享海量数据 13
第2 章 托管和共享TB 级原始数据 15
2.1 文件之殇 16
2.1.1 共享大量文件的挑战 16
2.2 存储:基础设施即服务 17
2.2.1 网络很慢 18
2.3 选择合适的数据格式 18
2.3.1 XML :数据,描述你自己 20
2.3.2 JSON :程序员的选择 21
2.4 字符编码 22
2.4.1 文件转换 24
2.5 移动中的数据:数据序列化格式 25
2.5.1 Apache Thrift 和Protocol Buffers 26
2.6 总结 27
第3 章 构建基于NoSQL 的Web 应用采集众包数据 29
3.1 关系型数据库:命令及控制 30
3.1.1 关系数据库的ACID 测试 32
3.2 当关系型数据库遇上互联网 33
3.2.1 CAP 原理与BASE 34
3.3 非关系型数据库的模式 36
3.3.1 键- 值数据库 36
3.3.2 文档存储 38
3.4 为写入性能优化:Redis 40
3.5 在多个Redis 实例上分片 43
3.5.1 使用Twemproxy 自动分区 44
3.5.2 Redis 的替代选项 46
3.6 NewSQL :Codd 归来 46
3.7 总结 47
第4 章 解决数据孤岛问题的策略 49
4.1 堆满术语的仓库 49
4.1.1 实践中的问题 51
4.1.2 数据合规与安全规划 52
4.1.3 走进数据仓库 53
4.1.4 数据仓库的口诀:抽取、转换和加载 54
4.2 Hadoop :数据仓库中的大象 55
4.3 数据孤岛也可能是个优点 55
4.3.1 专注于数据问题,而不是技术 56
4.3.2 鼓励员工提出他们自己的问题 57
4.3.3 投资沟通数据孤岛的技术 57
4.4 融合:数据孤岛的终结 58
4.4.1 Luhn 的商业智能系统是否能成为现实 59
4.5 总结 59
第3 部分 数据探究 61
第5 章 使用Hadoop、Hive 和Shark 探索大规模数据集 63
5.1 什么是数据仓库 64
5.2 Apache Hive :在Hadoop 上进行交互式查询 66
5.2.1 Hive 用例 66
5.2.2 Hive 实战 67
5.2.3 在Hive 中使用其他数据源 71
5.3 Shark :以内存的速度进行查询 72
5.4 云中的数据仓库 73
5.5 总结 74
第6 章 使用Google BigQuery 构建数据信息中心 77
6.1 分析型数据库 78
6.2 Dremel :均贫富 79
6.2.1 Dremel 与MapReduce 的不同之处 80
6.3 BigQuery :数据分析即服务 81
6.3.1 BigQuery 的查询语言 82
6.4 建造自己的大数据信息面板 83
6.4.1 授权访问BigQuery API 84
6.4.2 运行查询并获取结果 87
6.4.3 缓存查询结果 88
6.4.4 添加可视化图形 89
6.5 分析型查询引擎的未来 91
6.6 总结 91
第7 章 探索大数据的可视化策略 93
7.1 警世良言:将数据翻译成故事 94
7.2 人类尺度 VS 机器尺度 97
7.2.1 交互性 97
7.3 开发交互式数据应用 98
7.3.1 使用R 和ggplot2 实现交互式可视化 98
7.3.2 matplotlib: Python 的2D 图形库 100
7.3.3 D3.js :用于Web 的交互式可视化库 100
7.4 总结 104
第4 部分 构建数据流水线 107
第8 章 整合:MapReduce 数据流水线 109
8.1 数据流水线是什么 109
8.1.1 正确的工具 110
8.2 使用Hadoop Streaming 搭建数据流水线 111
8.2.1 MapReduce 和数据转换 111
8.2.2 最简单的流水线:stdin 到stdout 113
8.3 单步MapReduce 变换 115
8.3.1 从原始NVSS 数据中抽取相关信息:map 阶段 116
8.3.2 合计每月出生数:reducer 阶段 117
8.3.3 在本地测试MapReduce 流水线 118
8.3.4 在Hadoop 集群上运行我们的MapReduce 作业 119
8.4 降低复杂性:Hadoop 上Python 的MapReduce 框架 120
8.4.1 使用mrjob 重写Hadoop Streaming 示例 121
8.4.2 建造一个多步流水线 122
8.4.3 在Elastic MapReduce 上运行mrjob 脚本 124
8.4.4 其他基于Python 的MapReduce 框架 125
8.5 总结 125
第9 章 使用Pig 和Cascading 构建数据转换工作流 127
9.1 大规模数据工作流实战 128
9.2 多步MapReduce 转换真复杂 128
9.2.1 Apache Pig :拒绝复杂 129
9.2.2 使用交互式Grunt shell 运行Pig 130
9.2.3 过滤和优化数据工作流 132
9.2.4 以批处理模式运行Pig 脚本 132
9.3 Cascading :构建健壮的数据工作流应用 133
9.3.1 以source 和sink 的方式思考 134
9.3.2 构建Cascading 应用 135
9.3.3 创建一个Cascade :一个简单的JOIN 例子 136
9.3.4 在Hadoop 集群上部署Cascading 应用 138
9.4 何时选择Pig 或Cascading 139
9.5 总结 140
第5 部分 基于大规模数据集的机器学习 141
第10 章 使用Mahout 构建数据分类系统 143
10.1 机器能否预测未来 144
10.2 机器学习的挑战 144
10.2.1 贝叶斯分类 146
10.2.2 聚类 146
10.2.3 推荐引擎 148
10.3 Apache Mahout :可伸缩的机器学习工具 148
10.3.1 使用Mahout 进行文本分类 149
10.4 MLbase :分布式机器学习框架 152
10.5 总结 152
第6 部分 基于大规模数据集的统计分析 155
第11 章 使用R 语言处理大数据集 157
11.1 统计学为什么性感 158
11.1.1 R 处理大型数据集的局限性 159
11.1.2 R 的数据帧和矩阵 161
11.2 处理大数据集的策略 162
11.2.1 大矩阵处理:bigmemory 和biganalytics 162
11.2.2 ff: 使用大于内存的数据帧 164
11.2.3 biglm :大规模数据集的线性回归 165
11.2.4 RHadoop: 使用R 访问Apache Hadoop 166
11.3 总结 168
第12 章 使用Python 和Pandas 构建分析工作流 171
12.1 数据乐园中自在的蟒蛇――Python 172
12.1.1 为统计性计算选择一门语言 172
12.1.2 扩展现有代码 173
12.1.3 工具和测试 174
12.2 用于数据处理的Python 库 174
12.2.1 NumPy 175
12.2.2 SciPy :Python 的科学计算库 176
12.2.3 数据分析库Pandas 178
12.3 构建更复杂的工作流 182
12.3.1 处理损坏或丢失的记录 184
12.4 iPython :科学计算工具链的最后一环 185
12.4.1 在集群上并行执行iPython 186
12.5 总结 190
第7 部分 展望未来 191
第13 章 何时选择自制、购买或外包 193
13.1 功能重合的解决方案 193
13.2 理解你的数据问题 195
13.3 自制还是购买问题的参考手册 197
13.3.1 你已经对哪些技术有所投入 197
13.3.2 从小处着手 198
13.3.3 规划时考虑可扩展性 198
13.4 私人数据中心 199
13.5 了解开源的成本 201
13.6 一切皆服务 202
13.7 总结 202
第14 章 未来:数据科技的几个趋势 205
14.1 Hadoop :搅局者与被搅局者 206
14.2 一切皆在云中 208
14.3 数据科学家的兴衰 209
14.4 融合:终极数据库 212
14.5 文化融合 213
14.6 总结 214