MapReduce性能优化

shuffle过程参数调优

Map端的调优属性
io.sort.mb int 100 排序Map输出是所使用内存缓冲区的大小,以MB为单位
io.sort.record.percent float 0.05 用作存储Map输出记录边界的io.sort.mb的比例,剩余的空间存储Map输出记录本身
io.sort.spill.percent float 0.8 Map输出内存缓冲和用来开始磁盘溢出写过程的记录边界索引,是两者使用比例的阀值
io.sort.factor boolean false 排序文件时,一次最后合并的流数,这个属性也在Reduce端使用,将阀值增加到100是很常用的
mapred.compress.map.output 压缩Map的输出
mapred.map.out.compression.codec class org.apache.hadoop.io.compress.DefaultCodec 用于Map输出的压码编码解码
min.num.spills.for.combinar int 3 运行Combinar所需要的最小溢出写文件数
tasktracker.http.threads int 40 每个TaskTracker工作的线程数,用于将Map输出到Reduce这是集群范围的设置,不能有单个作业来设置

Reduce端的调优属性
mapred.reduce.parallel.copies int 5 每个Reduce并行下载Map结果的最大线程数
mapred.reduce.copy.backoff int 300 Reduce下载线程最大等待时间(in sec)
io.sort.factor int 10 同上
mapred.job.shuffle.input.buffer.percent float 0.7 用来缓存Shuffle数据的reduce task heap百分比
mapred.job.shuffle.merge.percent float 0.66 缓存的内存中多少百分比后开始做merge操作
mapred.job.reduce.input.buffer.percent float 0.0 sort完成后Reduce计算阶段用来缓存数据的百分比

Shuffle调优的总原则就是给Shuffle过程尽量多地提供内存空间,然后有一个平衡的问题,要确保map函数和reduce函数能够得到足够的内存来运行
运行Map任务和Reduce任务的JVM,其内存大小由参数mapred.child.java.opts来设置,任务节点上面的内存大小应尽量大

任务的执行##

推测执行
对于相同的输入数据,我们可以并行多次处理以利用不同的机器的负载能力
因为作业中大多数的任务都已经完成了,Hadoop平台会在几个空闲的节点上调度执行剩余任务的复制
当任务完成时,它会向JobTracker通告,任何一个首先完成的复制任务将成为权威复制,如果其他复制任务还在推测性执行,Hadoop会告诉TaskTracker去终止这些任务并丢弃它们的输出,接着Reduce会从首先完成的Mapper那里获取输入数据
推测性执行默认是启用的,设置JobConf中的mapred.map.tasks.speculative.execution和mapred.reduce.tasks.speculative.execution为false,用来禁止map和Reduce的推测性执行

>**任务JVM重用**
                      mapred.job.reuse.jvm.num.tasks的默认值为1,即每一个Task都新启动一个JVM来运行,而当值为-1时,表示JVM可以无限制重用
                      当值为-1时,TaskTracker也是先判断当前节点是否有空闲的slot剩余,如果没有空闲的slot槽位,才会判断当前分配的slot槽位中的JVM是否已经将当前的Task任务运行完,如果Task已经运行完,才会复用当前JVM(当前只针对同一个Job的Task才会进入JVM的复用)
            
 >**跳过坏的记录**
                      数据的一些记录不符合规范,处理时抛出异常,MapReduce可以将这次记录标为坏记录,重启任务时会跳过该记录
                      默认情况下该属性是关闭的,通过mapred.map.max.attemps和mapred.reduce.max.attemps两个参数进行设置

作业调度器

Hadoop作业调度器采用的是插件机制,即作业调度器是动态加载的 、可插拔的、同时第三方可以开发自己的作业调度器替代Hadoop默认的调度器。目前,Hadoop作业调度器主要有以下三个:
1.先进先出调度器(FIFO Scheduler)
默认的调度器,所有用户的作业都被提交到一个队列中,然后由JobTracker先按照作业的优先级高低,再按照作业提交时间的先后顺序选择将被执行的作业
缺点:忽略了不同作业的需求差异
2.容量调度器(Capacity Scheduler)
容量调度器的每个队列中采用的调度策略是FIFO算法
容量调度器默认情况下不支持优先级,但是可以在配置文件中开启此选项 ,如果支持优先级,调度算法就是带有优先级的FIFO
容量调度器不支持优先级抢占,一旦一个作业开始执行,在执行完成之前它的资源不会被高优先级作业所抢占
容量调度器对队列中同一用户提交的作业能够获得的资源百分比进行限制,以避免同属于一个用户的作业独占资源的情况
3.公平调度器(Fair Scheduler)
公平调度器的设计思想是,尽可能保证所有的作业都能够获得等量的资源份额。
系统中只有一个作业执行时,它将独占集群所有的资源,有其他作业被提交时就会有TaskTracker被释放并分配给新提交的作业,以保证所有的作业都能够获得大体相同的计算资源
最低保障资源份额机制?
用户提交的作业将会放进一个能够公平共享资源的池中,每个作业池设定了一个最低资源保障,当一个池中包含Job时,它至少可以获得minimum share的资源
默认情况下,每个作业池中选择将要执行作业的策略是FIFO策略,先按照优先级高低排序,然后按照提交时间排序
默认情况下,公平调度器会为每个用户建立一个单独的pool,所有的用户能够获得等量的资源份额而无论提交了多少作业,而每个pool中,各个作业将平分分配所在池的资源

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容