MapReduce Shuffle优化方向

Shuffle过程介绍可以查看该博客:http://langyu.iteye.com/blog/992916

优化方向:

  • 压缩:对数据进行压缩,减少写读数据量;
  • 减少不必要的排序:并不是所有类型的Reduce需要的数据都是需要排序的,排序这个nb的过程如果不需要最好还是不要的好;
  • 内存化:Shuffle的数据不放在磁盘而是尽量放在内存中,除非逼不得已往磁盘上放;当然了如果有性能和内存相当的第三方存储系统,那放在第三方存储系统上也是很好的;这个是个大招;
  • 网络框架:netty的性能据说要占优了;
  • 本节点上的数据不走网络框架:对于本节点上的Map输出,Reduce直接去读吧,不需要绕道网络框架。
时间: 2024-10-10 22:09:08

MapReduce Shuffle优化方向的相关文章

MapReduce shuffle过程剖析及调优

更新记录 2017-07-18 初稿 MapReduce简介 在Hadoop MapReduce中,框架会确保reduce收到的输入数据是根据key排序过的.数据从Mapper输出到Reducer接收,是一个很复杂的过程,框架处理了所有问题,并提供了很多配置项及扩展点.一个MapReduce的大致数据流如下图: 更详细的MapReduce介绍参考Hadoop MapReduce原理与实例. Mapper的输出排序.然后传送到Reducer的过程,称为shuffle.本文详细地解析shuffle过

MapReduce Shuffle过程

MapReduce Shuffle 过程详解 一.MapReduce Shuffle过程 1. Map Shuffle过程 2. Reduce Shuffle过程 二.Map Shuffle过程 1.   环形缓冲区 Map输出结果是先放入内存中的一个环形缓冲区,这个环形缓冲区默认大小为100M(这个大小可以在io.sort.mb属性中设置),当环形缓冲区里的数据量达到阀值时(这个值可以在io.sort.spill.percent属性中设置)就会溢出写入到磁盘,环形缓冲区是遵循先进先出原则,Ma

mapreduce.shuffle set in yarn.nodemanager.aux-services is invalid

15/07/01 20:14:41 FATAL containermanager.AuxServices: Failed to initialize mapreduce.shuffle java.lang.IllegalArgumentException: The ServiceName: mapreduce.shuffle set in yarn.nodemanager.aux-services is invalid.The valid service name should only con

唤醒亮屏速度优化方向

MT6753 在开了自动背光,唤醒亮屏速度不是很理想.客户提供了以下优化方向: 1.缩短初使化硬件的时间,优化autosuspend 和earlysuspend过程.2.调整lcd,tp,各种sensor的唤醒顺序.优先初始化光感和lcd. 先不去考虑具体器件IC上的延时因素,在MTK平台,若要按上面两点方向进行优化,平台这边具体code 如何修改? 若修改上面有此什么风险也请指出. 测试用例:adb logcat -v threadtime | grep -r "Excessive delay

oracle 性能优化方向

1调优设计 架构设计(RAC/单机).应用设计(模块设计.E-R模型设计) 2调优应用 代码调优.应用存储对象调优 3条用内存 数据高速缓存区.共享池.重做日志缓存区.大池 4.调优I/O RAID模式.文件系统与裸设备.存储缓存.表空间数据文件划分. 存储对象分布等 5.调优竞争 回滚段.Lock \Latch oracle 性能优化方向,布布扣,bubuko.com

存储性能优化方向整理

0概述 0.1 存储性能优化指标 io速率:速率提升数值和百分比 iops:iops提升数值和百分比 0.2 优化方向概述 块存储优化方向:优化的工作,基本上都是在底层,上层只是一些配置. 这些底层的技术适用于ceph块设备,主要是ceph还有自身的一些配置.缓存方案可以拿过来用,在最后补充一下. 底层包括qemu/kvm/kernel三个层面,kernel又主要是filesystem.scsi和block这部分和存储关系最大,也是存储系统由上而下的三部分.我认为如果优化的话,主要工作在这几个方

MySQL优化方向&思路

硬件级别         操作系统和硬件级别的优化着眼点: 1.对于CPU密集型的应用场景要使用更快速度的CPU甚至更多数量的CPU,为有着更多查询的场景使用更多的CPU等.基于多核以及超线程(hyperthreading)技术,现代的CPU架构越来越复杂.性能也越来越强了,但MySQL对多CPU架构的并行计算能力的利用仍然是有着不太尽如人意之处,尤其是较老的版本如MySQL 5.1之前的版本甚至无法发挥多CPU的优势.不过,通常需要实现的CPU性能提升目标有两类:低迟延和高吞吐量.低延迟需要更

mysql优化方向

随着数据的积累,慢慢的我们一些不好的习惯都会在系统中暴露出来,程序执行的效率低,用户体验下降,如果我们不采取一些措施,那么用户就回流失.提高程序的执行效率可能需要做很多工作,但其中一个重要的工作就是mysql优化,或者称为数据库优化. 优化方向 1.表设计合理化(数据库范式)2.添加适当的索引(主键索引.唯一索引.普通索引.全文索引)3.高效的sql(sql语句优化,尤其是慢查询)4.分表技术(水平分割.垂直分割)5.读写分离6.存储过程(预编译的sql语句,提高了执行效率)7.配置优化 例如

hbase优化方向说明

如何对hbase用的好,怎么定义把hbase用的好?在保证系统稳定性.可用性的基础上能够用最少的系统资源(CPU,IO等)获得最好的性能(吞吐量,读写延迟)就是'用的好'.优化方向为:(1)HDFS相关配置优化,(2)HBase服务器端优化(GC优化.Compaction优化.硬件配置优化),(3)列族设计优化,(4)客户端优化等,其中第四点(4)客户端优化在前面已经通过超时机制.重试机制讲过,参考链接为:HBase客户端Rpc的重试机制以及客户端参数优化.:https://blog.51cto