内容简介
如果你已经准备好要充分实施大规模可扩展性数据分析工作,那么需要知道如何利用Hadoop技术。这本《Hadoop编程——构建与实现大数据解决方案》可以帮助你做到这一点!本书关注用于构建的、基于Hadoop的企业级应用的架构和方案,并为实现现实的解决方案提供深入的、代码级的讲解。本书还会带你领略数据设计以及数据设计如何影响实现。本书解释了MapReduce的工作原理,并展示了如何在MapReduce中重新定制特定的业务问题。在整本书中,你将会发现深入的Java代码示例,这些代码示例可以直接使用,它们均源自于已经成功地构建和部署的应用程序。
目录
目 录
第1章 大数据和Hadoop生态系统 1
1.1 当大数据遇见Hadoop 2
1.1.1 Hadoop:直面大数据的挑战 3
1.1.2 商业世界中的数据科学 4
1.2 Hadoop生态系统 6
1.3 Hadoop核心组件 7
1.4 Hadoop发行版 9
1.5 使用Hadoop开发企业级应用 10
1.6 小结 14
第2章 Hadoop数据存储 15
2.1 HDFS 15
2.1.1 HDFS架构 15
2.1.2 使用HDFS文件 19
2.1.3 Hadoop特定的文件类型 21
2.1.4 HDFS联盟和高可用性 26
2.2 Hbase 28
2.2.1 Hbase架构 28
2.2.2 Hbase结构设计 34
2.2.3 Hbase编程 35
2.2.4 Hbase新特性 42
2.3 将HDFS和Hbase的组合用于数据存储 45
2.4 使用Apache Avro 45
2.5 利用HCatalog管理元数据 49
2.6 为应用程序选择合适的Hadoop数据组织形式 51
2.7 小结 53
第3章 使用MapReduce处理数据 55
3.1 了解MapReduce 55
3.1.1 MapReduce执行管道 56
3.1.2 MapReduce中的运行时协调和任务管理 59
3.2 第一个MapReduce应用程序 61
3.3 设计MapReduce实现 69
3.3.1 将MapReduce用作并行处理框架 70
3.3.2 使用MapReduce进行简单的数据处理 71
3.3.3 使用MapReduce构建连接 72
3.3.4 构建迭代式MapReduce应用程序 77
3.3.5 是否使用MapReduce 82
3.3.6 常见的MapReduce设计陷阱 83
3.4 小结 84
第4章 自定义MapReduce执行 85
4.1 使用InputFormat控制MapReduce执行 85
4.1.1 为计算密集型应用程序实现InputFormat 87
4.1.2 实现InputFormat以控制Map的数量 93
4.1.3 实现用于多个Hbase表的InputFormat 99
4.2 使用自定义RecordReader以自己的方式读取数据 102
4.2.1 实现基于队列的RecordReader 102
4.2.2 为XML数据实现RecordReader