教导行业A股IPO第一股(股票代码 003032)

天下征询/赞扬热线:400-618-4000

MapReduce机能调优体例有哪些?

更新时辰:2022年03月28日16时46分 来历:传智教导 阅读次数:

利用Hadoop停止大数据运算,当数据量极为大时,那末对MapReduce机能的调优首要性显而易见,出格是Shuffle进程中的参数设置装备摆设对功课的总履行时辰影响出格大。下面总结一些和MapReduce相干的机能调优体例,首要从五个方面斟酌:数据输出、Map阶段、Reduce阶段、Shuffle阶段和其余调优属性。

1.数据输出

在履行MapReduce使命前,将小文件停止归并,大批的小文件会发生大批的map使命,增大map使命装载的次数,而使命的装载比拟耗时,从而致使MapReduce运转速率较慢。是以咱们接纳CombineTextInputFormat来作为输出,处置输出端大批的小文件场景。

2.Map阶段

(1)削减溢写(spill)次数:经由进程调剂io.sort.mb及sort.spill.percent参数值,增大触发spill的内存下限,削减spill次数,从而削减磁盘IO。

(2)削减归并(merge)次数:经由进程调剂io.sort.factor参数,增大merge的文件数量,削减merge的次数,从而耽误mr处置时辰。

(3)在map以后,不影响停业逻辑条件下,先停止combine处置,削减I/O。咱们在下面提到的那些属性参数,都是位于mapred-default.xml文件中,这些属性参数的调优体例如表4-1所示。

表4-1Map阶段调优属性

3.Reduce阶段

(1)公道设置map和reduce数:两个都不能设置太少,也不能设置太多。太少,会致使task期待,耽误处置时辰;太多,会致使map、reduce使命间协作资本,形成处置超时等毛病。

(2)设置map、reduce共存:调剂slowstart.completedmaps参数,使map运转到必然水平后,reduce也起头运转,削减reduce的期待时辰。

(3)躲避利用reduce:由于reduce在用于毗连数据集的时辰将会发生大批的收集耗损。经由进程将MapReduce参数setNumReduceTasks设置为0来建立一个只要map的功课。

(4)公道设置reduce真个buffer:默许环境下,数据到达一个阈值的时辰,buffer中的数据就会写入磁盘,而后reduce会从磁盘中取得一切的数据。也便是说,buffer和reduce是不间接联系干系的,中心多一个写磁盘->读磁盘的进程,既然有这个弊病,那末便能够经由进程参数来设置装备摆设,使得buffer中的一局部数据能够间接保送到reduce,从而削减IO开消。如许一来,设置buffer须要内存,读取数据须要内存,reduce计较也要内存,以是要按照功课的运转环境停止调剂。

咱们在下面提到的属性参数,都是位于mapred-default.xml文件中,这些属性参数的调优体例如表4-2所示。

表4-2Reduce阶段的调优属性

4.Shuffle阶段

Shuffle阶段的调优便是给Shuffle进程尽可能多地供给内存空间,以防止呈现内存溢呈景象,能够由参数mapred.child.java.opts来设置,使命节点上的内存巨细应尽可能大。

咱们在下面提到的属性参数,都是位于mapred-site.xml文件中,这些属性参数的调优体例如表4-3所示。

表4-3shuffle阶段的调优属性

5.其余调优属性

除此以外,MapReduce另有一些根基的资本属性的设置装备摆设,这些设置装备摆设的相干参数都位于mapred-default.xml文件中,咱们能够公道设置装备摆设这些属性进步MapReduce机能,表4-4罗列了局部调优属性。

表4-4MapReduce资本调优属性

0 分享到:
和咱们在线扳谈!