前 言
Hadoop MapReduce性能优化
MapReduce是一个重要的并行处理模型,用于大规模、数据密集型应用,比如数据挖掘和Web索引。Hadoop作为MapReduce的一个开源实现,广泛用于支持对响应时间要求很严苛的集群计算作业。
多数MapReduce程序的开发是以数据分析为目的的,这通常需要花费很长的时间。许多公司正在用Hadoop在更大的数据集上做更高级的数据分析,当然这更加需要运行时间的保障。运行效率,尤其是MapReduce的I/O开销,仍然是需要解决的问题。经验表明,配置不当的Hadoop集群会明显降低MapReduce作业的执行性能,甚至会造成显著的性能降级。
在本书中,我们致力于解决MapReduce优化问题:怎样识别系统的短板,怎样做才能充分利用Hadoop集群资源更好地处理输入数据。本书先介绍MapReduce内部工作原理,并讨论可能影响性能的因素,之后研究Hadoop性能指标(metrics)与性能检测工具,并识别资源短板,如CPU竞争、内存利用率、海量I/O存储以及网络流量。
本书基于实际经验,以循序渐进的方式教读者消除作业瓶颈,并在生产环境下全面优化MapReduce作业。除此之外,读者还将学到如何通过计算得出恰当地处理数据的集群节点数,如何根据硬件资源定义恰当的mapper和reducer任务数,以及如何用压缩技术和combiner优化mapper和reducer任务的性能。
最后,读者将会了解Hadoop集群调优的最佳实践和建议,并认识MapReduce模板类。
目 录
第 1 章 了解Hadoop MapReduce
1.1 MapReduce模型
1.2 Hadoop MapReduce概述
1.3 Hadoop MapReduce的工作原理
1.4 影响MapReduce性能的因素
1.5 小结
第 2 章 Hadoop参数概述
2.1 研究Hadoop参数
2.2 Hadoop MapReduce性能指标
2.3 性能监测工具
2.4 用Apache Ambari监测Hadoop
2.5 小结
第 3 章 检测系统瓶颈
第 4 章 识别资源薄弱环节
第 5 章 强化map和reduce任务
第 6 章 优化MapReduce任务
第 7 章 最佳实践与建议