Hadoop大数据处理
内容简介:
《Hadoop大数据处理》以大数据处理系统的三大关键要素——“存储”、“计算”与“容错”为起点,深入浅出地介绍了如何使用Hadoop这一高性能分布式技术完成大数据处理任务。本书不仅包含了使用Hadoop进行大数据处理的实践性知识和示例,还以图文并茂的形式系统性地揭示了Hadoop技术族中关键组件的运行原理和优化手段,为读者进一步提升Hadoop使用技巧和运行效率提供了颇具价值的参考。
《Hadoop大数据处理》共10章,涉及的主题包括大数据处理概论、基于Hadoop的大数据处理框架、MapReduce计算模式、使用HDFS存储大数据、HBase大数据库、大数据的分析处理、Hadoop环境下的数据整合、Hadoop集群的管理与维护、基于MapReduce的数据挖掘实践及面向未来的大数据处理技术。最后附有一个在Windows环境下搭建Hadoop开发及调试环境的参考手册。
《Hadoop大数据处理》适合需要使用Hadoop处理大数据的程序员、架构师和产品经理作为技术参考和培训资料,也可作为高校研究生和本科生教材。
资源目录:
第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 分类(Classfication) 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平台内部数据整合工具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
截图: