Hadoop调优策略

Hadoop调优策略

一、调优策略
  1.调节溢写缓冲区大小,减少Spill溢写次数,减少磁盘I/O次数
  2.加入Combiner中间过程,在溢写缓冲区就会发生Combiner,好处是:比如——hello 1 hello 1一共占14个字节,Combiner 后,变为hello 2 。所以也能够间接减少Spill溢写次数,从而提高性能。
  3.加入Combiner中间过程,在Merger过程中,可能会发生Combiner,意义是能够减少最后结果的大小,从而能够减少Reduce Fetch的数据量,节省带宽,提供性能。注:为什么有可能不发生Combiner,如果最后的Spill文件数量是一个,则Spill文件相当于是最后的结果文件——即没有Merge过程——也就没有Combiner过程。此外,当Spill文件是2个时候,也不会发生Combiner。综上:在Merger过程,如果Spill文件的数量小于3,则不会发生Combiner。
  4.在Reduce 抓取分区数据时,是由线程来处理的,为了提高效率,我们的策略是让抓取线程尽可能等于或接近于Map任务数量,从而达到并行抓取的效果。
  5.适当调大Merge合并因子(Hadoop默认是10)
  6.Reduce任务并不是等所有的Map任务都完成后才启动的,Hadoop有一个默认的启动阈值,5%(0.05)。所以这个值可以适当减小。
二、Hadoop常见参数控制+调优策略
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三、MR调优策略
  Map Task和Reduce Task调优的一个原则就是
   1.减少数据的传输量(节省带宽)
   2.尽量使用内存
   3.减少磁盘I/O的次数
   4.增大任务并行数
   5.除此之外还有根据自己集群及网络的实际情况来调优。
四、硬件角度调优
  Hadoop自身架构的基本特点决定了其硬件配置的选项。Hadoop采用了Master/Slave架构,其中,master维护了全局元数据信息,重要性远远大于slave。在较低Hadoop版本中,master存在单点故障问题,因此,master的配置应远远好于各个slave。
五、操作系统参数调优
  1.增大同时打开的文件描述符和网络连接上限
使用ulimit命令将允许同时打开的文件描述符数目上限增大至一个合适的值。同时调整内核参数net.core.somaxconn网络连接数目至一个足够大的值。
  补充:net.core.somaxconn的作用
  net.core.somaxconn是Linux中的一个kernel参数,表示socket监听(listen)的backlog上限。什么是backlog呢?backlog就是socket的监听队列,当一个请求(request)尚未被处理或建立时,它会进入backlog。而socket server可以一次性处理backlog中的所有请求,处理后的请求不再位于监听队列中。当server处理请求较慢,以至于监听队列被填满后,新来的请求会被拒绝。在Hadoop 1.0中,参数ipc.server.listen.queue.size控制了服务端socket的监听队列长度,即backlog长度,默认值是128。而Linux的参数net.core.somaxconn默认值同样为128。当服务端繁忙时,如NameNode或JobTracker,128是远远不够的。这样就需要增大backlog,例如我们的3000
台集群就将ipc.server.listen.queue.size设成了32768,为了使得整个参数达到预期效果,同样需要将kernel参数net.core.somaxconn设成一个大于等于32768的值。
  2.关闭swap分区
避免使用swap分区,提供程序的执行效率。除此之外,设置合理的预读取缓冲区的大小、文件系统选择与配置及I/O调度器选择等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值