第1章 大数据处理概论 1
1.1什么是大数据 2
1.2数据处理平台的基础架构 5
1.3大数据处理的存储 7
1.3.1提升容量 7
1.3.2提升吞吐量 11
1.4大数据处理的计算模式 17
1.4.1多处理技术 17
1.4.2并行计算 20
1.5大数据处理系统的容错性 26
1.5.1数据存储容错 27
1.5.2计算任务容错 28
1.6大数据处理的云计算变革 30
本章参考文献 32
第2章 基于Hadoop的大数据处理架构 35
2.1 Google核心云计算技术 35
2.1.1并行计算编程模型MapReduce 36
2.1.2分布式文件系统GFS 38
2.1.3分布式结构化数据存储BigTable 39
2.2 Hadoop云计算技术及发展 41
2.2.1 Hadoop的由来 41
2.2.2 Hadoop原理与运行机制 42
2.2.3 Hadoop相关技术及简介 45
2.2.4 Hadoop技术的发展与演进 47
2.3基于云计算的大数据处理架构 48
2.4基于去计算的大数据处理技术的应用 51
2.4.1百度 51
2.4.2阿里巴巴 56
2.4.3腾讯 58
2.4.4华为 60
2.4.5中国移动 62
2.5 Hadoop运行实践 63
本章参考文献 64
第3章 MapReduce计算模式 66
3.1 MapReduce原理 66
3.2 MapReduce工作机制 69
3.2.1 MapReduce运行框架的组件 70
3.2.2 MapReduce作业的运行流程 70
3.2.3作业调度 72
3.2.4异常处理 73
3.3 MapReduce应用开发 74
3.3.1 MapReduce应用开发流程 74
3.3.2通过Web界面分析MapReduce应用 76
3.3.3 MapReduce任务执行的单步跟踪 78
3.3.4多个MapReduce过程的组合模式 79
3.3.5使用其他语言编写MapReduce程序 81
3.3.6不同数据源的数据联结(Join) 82
3.4 MapReduce设计模式 87
3.4.1计数(Counting) 88
3.4.2分类(Classfiication) 88
3.4.3过滤处理(Filtering) 89
3.4.4排序(Sorting) 89
3.4.5去重计数(Distinct Counting) 90
3.4.6相关计数(Cross-Correlation) 91
3.5 MapReduce算法实践 92
3.5.1最短路径算法 92
3.5.2反向索引算法 94
3.5.3 PageRank算法 95
3.6 MapReduce性能调优 97
3.6.1 MapReduce参数配置优化 97
3.6.2使用Cominber减少数据传输 99
3.6.3启用数据压缩 100
3.6.4使用预测执行功能 101
3.6.5重用JVM 101
本章参考文献 102
第4章 使用HDFS存储大数据 103
4.1大数据的云存储需求 103
4.2 HDFS架构与流程 104
4.2.1系统框架 104
4.2.2数据读取过程 105
4.2.3数据写入过程 106
4.3文件访问与控制 108
4.3.1基于命令行的文件管理 108
4.3.2通过API操作文件 110
4.4 HDFS性能优化 114
4.4.1调整数据块尺寸 114
4.4.2规划网络与节点 114
4.4.3调整服务队列数量 116
4.4.4预留磁盘空间 116
4.4.5存储平衡 117
4.4.6根据节点功能优化磁盘配置 117
4.4.7其他参数 119
4.5 HDFS的小文件存储问题 119
4.5.1 Hadoop Archive工具 120
4.5.2 CombineFileInputFormat 121
4.5.3 SequenceFile格式 121
4.5.4相关研究 122
4.6 HDFS的高可用性问题 123
4.6.1基于配置的元数据备份 123
4.6.2基于DRBD的元数据备份 124
4.6.3 Secondary NameNode/CheckpointNode 125
4.6.4 Backup Node 125
4.6.5 NameNode热备份 126
4.6.6 HDFS的HA方案总结 126
本章参考文献 127
第5章 HBase大数据库 128
5.1大数据环境下的数据库 128
5.2 HBase架构与原理 129
5.2.1系统架构及组件 129
5.2.2数据模型与物理存储 131
5.2.3 RegionServer的查找 135
5.2.4物理部署与读写流程 136
5.3管理HBase中的数据 138
5.3.1 Shell 138
5.3.2 Java API 141
5.3.3非Java语言访问 146
5.4从RDBMS到HBase 147
5.4.1行到列与主键到行关键字 149
5.4.2联合查询(Join)与去范例化(Denormalization) 151
5.5在HBase上运行MapReduce 152
5.6 HBase性能优化 155
5.6.1参数配置优化 155
5.6.2表设计优化 156
5.6.3更新数据操作优化 157
5.6.4读数据操作优化 158
5.6.5数据压缩 159
5.6.6 JVM GC优化 159
5.6.7负载均衡 160
5.6.8性能测试工具 160
本章参考文献 161
第6章 大数据的分析处理 162
6.1大数据的分析处理概述 162
6.2 Hive 163
6.2.1系统架构及组件 163
6.2.2 Hive数据结构 164
6.2.3数据存储格式 166
6.2.4 Hive支持的数据类型 168
6.2.5使用HiveQL访问数据 170
6.2.6自定义函数扩展功能 175
6.3 Pig 177
6.3.1 Pig架构 178
6.3.2 Pig Latin语言 179
6.3.3使用Pig处理数据 184
6.4 Hive与Pig的对比 187
本章参考文献 188
第7章 Hadoop环境下的数据整合 189
7.1 Hadoop计算环境下的数据整合问题 189
7.2数据库整合工具Sqoop 191
7.2.1使用Sqoop导入数据 192
7.2.2使用Sqoop导出数据 195
7.2.3 Sqoop与Hive结合 196
7.2.4 Sqoop对大对象数据的处理 197
7.3 Hadoop平台内部数据整合工具 197
HCatalog 197
7.3.1 HCatalog的需求与实现 198
7.3.2 MapReduce使用HCatalog管理数据 202
7.3.3 Pig使用HCatalog管理数据 204
7.3.4 HCatalog的命令行与通知功能 205
本章参考文献 207
第8章 Hadoop集群的管理与维护 208
8.1云计算平台的管理体系 208
8.2 ZooKeeper集群中的配置管理与协调者 211
8.2.1集群环境下的配置管理 211
8.2.2 ZooKeeper架构 212
8.2.3 ZooKeeper的数据模型 213
8.3 Hadoop集群监控的基础组件 214
8.3.1 Nagios 214
8.3.2 Ganglia 217
8.3.3 JMX 219
8.4 Ambari——Hadoop集群部署与监控集成工具 220
8.5基于Cacti的Hadoop集群服务器监控 223
8.6 Chukwa集群日志收集及分析 225
8.7基于Kerberos的Hadoop安全管理 227
8.8 Hadoop集群管理工具分析 230
本章参考文献 231
第9章 基于MapReduce的数据挖掘 232
9.1数据挖掘及其分布式并行化 232
9.2基于MapReduce的数据挖掘与Mahout 237
9.3经典数据挖掘算法的MapReduce实例 242
9.3.1矩阵乘法 243
9.3.2相似度计算 246
9.4基于云计算的数据挖掘实践及面临的挑战 252
本章参考文献 256
第10章 面向未来的大数据处理 257
10.1下一代计算框架YARN 257
10.2大数据的实时交互式分析 260
10.2.1 Google Dremel 261
10.2.2 Cloudera Impala 265
10.3大数据的图计算 266
10.3.1 BSP模型 267
10.3.2 Google Pregel计算框架 268
10.3.3 Apache Hama开源项目 271
本章参考文献 275
附录 基于Cygwin的Hadoop环境搭建 276
附录A安装和配置Cygwin 276
附录B安装和配置Hadoop 281
附录C运行示例程序验证Hadoop安装 285
附录D安装和配置Eclipse下的Hadoop开发环境 286