是时候把去年早期MapReduce调优工作的结果放出来了,丢在Google Doc里太长时间,都落了一身的灰
Benchmark: 对1G数据做wordcount
部分内容:
*********************************
硬件级别
提高磁盘IO的性能
noatime 我为两台slaves server设置了noatime. vi /etc/fstab.map task的平均执行时间减少两秒,这影响硬盘IO的性能,shuffle的时间也相应地减少了1分钟,不影响reduce的执行时间
client端设置
map与reduce task数量
map task的数量由split的数量决定,split的数据越小,每个map task执行的时间就越短,但相应地, job的执行时间就拉长了, 因为内部调度的时间更长了
benchmark:
之前是67个map task,平均执行时间是16秒, job完成时间接近7分钟
后来map task变成265个, 平均每个map task执行8秒,但job完成时间差不多12分钟
reduce task的数量由client来设置
我测试的结果client设置result task略大于或等于集群reduce slot, 当然这是整个集群只有一个job在执行的情况下,当有多个job执行时, 网上的建议是少于集群reduce slots总量
集群reduce slots数量是4,我设置reduce数量成8的时候,每个reduce执行的很快,shuffle过程也短,最终job完成时间差不多是7分钟,而设置为2时,shuffle时间很长,job完成时间为12分钟.当我再设置为4个reduce task时, 执行时间差不多8分钟
后来我又做了三个长时间job并发运行的测试,结果显示纵使有很多个map slot在运行, 两台slaves的CPU与内存利用率不是很离谱, 但不同的场景应该有不同的设置,主要还是根据slave的负载来决定. 查看slave机器的负载可使用top命令
*********************************
橙色: 正常的调优点,试验后有正常的反应
红色: 不可理喻的地方,与正常的想法相违背
黄色: 可有可无的地方,只是试验了,不推荐使用
调优是基于Hadoop 0.21版本。不再过多解释了,看过后如有不认同且有争议的调优点,请与我讨论,谢谢
分享到:
相关推荐
- 确定Job的基线配置对于后续的性能调优至关重要。基线配置应包括但不限于: - 默认的Map和Reduce任务数量。 - 默认的内存和CPU分配。 ##### 12.7.3 Shuffle调优 - Shuffle过程中的性能瓶颈通常包括网络传输和...
本篇文章将从四个方面对Hive性能调优进行详细的讲解,分别是Hive建表设计、HiveHQL语句优化、Hive配置参数调整和MapReduce引擎调整。 Hive性能调优的重要性 在大数据领域中,Hive作为一个常用的数据仓库组件,性能...
- **Hive配置**:设置合适的`mapreduce.job.maps`和`mapreduce.job.reduces`以平衡计算资源和任务数量。 - **公平调度器**:根据不同的工作负载设置优先级,保证重要任务的执行。 6. **缓存与重用**: - **Hive ...
### Hive性能优化总结 #### 一、Hadoop与Hive计算框架特性引发的问题 Hadoop作为大数据处理平台,其核心优势在于能够高效处理大规模数据集。然而,在具体的应用场景中,尤其是在Hive作为数据仓库使用时,仍存在...
MapReduce和YARN是大数据处理领域中的核心组件,尤其在华为的大数据认证中占有重要地位。MapReduce是一种基于Google发布的同名论文设计的分布式离线批处理框架,主要适用于处理超过1TB的大规模数据集。其特点是易于...
3. **Mapper/Reducer性能调优**:合理设置内存大小、槽位数量、并行度等参数。 通过以上介绍,你应该对Java MapReduce编程有了基本的认识。实际上,这只是冰山一角,更深入的学习还包括理解HDFS的工作原理、容错...
Hadoop作业调优是提升大数据处理效率的关键环节,通过对Hadoop MapReduce框架中的参数进行精细调整,可以显著改善作业的性能。以下是对标题和描述中涉及的参数及原理的详细说明: 1. **MapTask运行内部原理** - **...
- 启用JVM重用:设置**mapreduce.job.jvm.numtasks**,该参数指定单个JVM实例可以运行的Map或Reduce任务的数量。 - 根据作业的具体情况调整JVM重用策略。 综上所述,通过对Hive作业的各个阶段进行细致的调优,可以...
总结,Hive调优是一个综合性的工程,涉及到SQL优化、数据组织、硬件配置、并行度控制等多个方面。通过持续的监控和调整,可以显著提升大数据量场景下的查询性能。在实际操作中,应根据具体业务需求和环境进行灵活...
可能包括如何调试Mapper和Reducer,性能调优策略,以及如何处理数据倾斜等问题。 至于文件名`app`,这可能是某种应用程序或者示例程序的简写,可能包含一个MapReduce的实例代码。通常,MapReduce应用程序会包含一个...
对于大型集群,还需要考虑性能优化,如分区策略、Combiner使用、内存调优等。 总结,MapReduce在处理大数据时提供了强大的能力,而WordCount案例则展示了其基本工作流程。通过Java实现,我们可以灵活地设计和部署...
除了上述针对Hive本身的优化外,还可以从Job的配置层面进行调优。 1. **资源分配**: - 根据实际需求调整`yarn.nodemanager.resource.cpu-vcores`和`yarn.nodemanager.resource.memory-mb`等参数,确保足够的CPU和...
3.Job调优:Job是Hadoop中的计算任务,可以通过调整Job的参数来提高计算效率。 四、Hadoop高级知识 1. Pig Latin:Pig Latin是Hadoop中的高级查询语言,提供了类似SQL的查询能力。 2. Hive:Hive是Hadoop中的数据...
6. **Hadoop性能优化**:包括硬件选择、集群配置、作业调度策略、I/O优化以及MapReduce作业的性能调优。 7. **实时数据处理**:介绍与Hadoop相结合的实时流处理框架,如Flume、Kafka、Storm和Spark Streaming。 8....
- **Accessing Other HBase Tables in a MapReduce Job**: 在MapReduce作业中访问其他HBase表的方法。 - **Speculative Execution**: 投机执行机制。 #### 九、HBase安全 - **安全客户端访问HBase**: 安全访问方法...
- **优化调优**:根据业务需求和性能指标,进行参数调整和作业优化。 4. **安全与合规** - **用户应遵守法律声明中的条款,确保合法合规使用服务**。 - **保密义务**:用户需保护阿里云提供的文档内容,不得泄露...
高级主题可能涉及Hadoop的优化、性能调优、YARN的资源管理策略,以及Hadoop与其他大数据技术(如Spark)的集成。 8. 实践项目: 学习者可能会被引导完成一个完整的Hadoop项目,从数据获取、数据处理到结果分析,...
1. **增加Map任务数量**:通过调整`mapreduce.job.maps`参数,增加Map任务的数量,使数据更加均匀地分布在各个Map任务中。 2. **调整分区键**:选择合适的数据字段作为分区键,使得数据尽可能平均分布。 3. **使用...