Hadoop调优

Hadoop参数调优;

1、hdfs-site.xml 文件中配置多目录(提前配置),否则更改目录需要重新启动集群

2、Namenode有一个线程池,来处理不同的DataNode的并发心跳以及客户端并发元数据操作

  dfs.namenode.handler.count= 20*log2(Cluseter Size)

  如果该值设置的太小,明显的状况就是DataNode在连接NameNode的时候总是超时或者连接被拒绝,

  但是NameNode的远成调用队列很大是,远程调用延时就会加大,症状之间是相互影响的,很难说修改该值就可以解决问题,

  但是在查找故障时,检查一下改制的设置是有必要的

3、编辑日志存储路径dfs.namenode.edits.dir 设置与净吸纳过文件存储路径dfs.namenode

.name.dir尽量分开,达到最低写入延迟

4、服务器节点上YARN课使用的物理内存总量,默认是8192M,如果节点内存资源不够8G,就需要调小这个值,而YARN不会只能的探测节点的物理内存总量      yarn.nodemanager.resource.memory-mb

5、翻个任务可申请的最多物理内存量,默认8192M

  yarn.scheduler.maxmum-allocation-mb

6、解决数据倾斜方法

  1)在map端进行combine,减少传输的数据量(如果导致数据倾斜的key大量分布在不同的mapper时,效果不好)

  2)导致数据倾斜的key大量分布在不同的mapper

    ①局部聚合加全局聚合(两次mr性能不好)

    ②增加reducer 提高并行度

      根据数据分布情况,自定义散列函数,将key均匀分布在不同的Reducer

    ③增加reduce并行度 JobConf.setNumReduceTasks(int)

  

7、集群资源分配参数

  集群30台机器,跑mr时候发现5个map任务全部分配到一台机器上,造成这的原因是因为 yarn.scheduler.fair.assignmultiple这个参数默认是打开的,需要手动关闭

 

posted @ 2020-06-15 21:33  七寸青衫  阅读(180)  评论(0编辑  收藏  举报
loading: { rebound: { tension: 16, }, spinner: { id: 'spinner', radius: 90, } }