小猿圈之Hadoop优化

Hadoop框架是如今最主流的的框架之一,愈来愈多的人去学习,那么你对hadoop的理解是什么?hadoop必定要会优化,那怎么优化呢,小猿圈今天说一下,感兴趣的朋友能够看看小猿圈写的这篇文章。bash

一、mr程序的效率瓶颈网络

功能:分布式离线计算框架

计算机性能:CPU、内存、磁盘、网络分布式

I/O操做优化aoop

(1)数据倾斜(代码优化)性能

(2)map和reduce数设置不合理学习

(3)map运行时间太长,致使reduce等待太久优化

(4)小文件过多(combineTextInputFomrat小文件合并)spa

(5)不可分块的超大文件(不断的溢写)code

(6)多个溢写小文件须要屡次merge

二、mr优化方法

六个方面考虑:数据输入、Map阶段、Reduce阶段、IO传输、

数据倾斜、参数调优

1­>数据输入

(1)合并小文件:在执行mr任务前就进行小文件合并

(2)采用CombineTextInputFormat来做为输入,解决输 入端大量小文件的场景

mr并不适合处理大量小文件

2­>Map阶段

(1)减小溢写次数(增长内存200M 80%)

<property>
            <name>mapreduce.task.io.sort.mb</name>
            <value>100</value>
        </property>
        <property>
            <name>mapreduce.map.sort.spill.percent</name>
            <value>0.80</value>
        </property>
复制代码

(2)减小合并次数

<property>
            <name>mapreduce.task.io.sort.factor</name>
            <value>10</value>
        </property>
复制代码

(3)在map以后,不影响业务逻辑状况下进行combiner

3­>Reduce阶段

(1)合理设置map与reduce个数

(2)设置map/reduce共存

设置运行必定程度的map运行后 启动reduce减小等待时间

<property>
            <name>mapreduce.job.reduce.slowstart.completedmaps</name>
            <value>0.05</value>
        </property>
复制代码

(3)合理设置reduce端的buffer

<property>
            <name>mapreduce.reduce.markreset.buffer.percent</name>
            <value>0.0</value>
        </property>
复制代码

4­>传输

(1)进行数据压缩

(2)使用sequenceFile

5­>数据倾斜

(1)进行范围分区

(2)自定义分区

(3)Combine

(4)能用mapjoin坚定不用reduce join

6­>参数调优

设置核心数

map核心数设置:

<property>
            <name>mapreduce.map.cpu.vcores</name>
            <value>1</value>
        </property>
复制代码

reduce核心数设置:

<property>
            <name>mapreduce.reduce.cpu.vcores</name>
            <value>1</value>
        </property>
复制代码

设置内存

maptask内存设置:

<property>
            <name>mapreduce.map.memory.mb</name>
            <value>1024</value>
        </property>
复制代码

reducetask内存设置:

<property>
            <name>mapreduce.reduce.memory.mb</name>
            <value>1024</value>
        </property>
复制代码

reduce去map端拿数据并行度

<property>
            <name>mapreduce.reduce.shuffle.parallelcopies</name>
            <value>5</value>
        </property>
复制代码

hadoop优化小猿圈说了几个优化的方面,你们感受怎么样?若是有其余方面的优化方法,能够给小猿圈补充,感受还不错的话,能够去小猿圈学习其余方面内容,但愿你们会学到更多全面的内容。

相关文章
相关标签/搜索