hadoop 优化:

MapReduce:
Map:
切片优化:调整map的数量
当集群的资源(cup,内存)比较充足。可以适当将切片大小,调小。
这个时候会增加map的数量,加快读取处理速度。
当集群的资源(cup,内存)比较紧缺,可以适当将切片大小,调大。
这个时候会减少map的数量,可以一定程度提高效率。
数据本地化,任务本地化处理:可以适当增加副本数(前提是磁盘空间充足)

调整Reduce数量:
reduce的数量默认由分区决定,也可以直接手动设置reduce个数。
job.setNumReduceTasks(2);
假设key值比较均匀 可以设置不同的reduce 将不同的key存入不同的redece

设置yarn :默认情况下,新版 2.6 默认的调度策略是计算能力调度。
yarn默认的调度策略是:
默认的资源任务队列:default
hadoop 优化方式

yarn.scheduler.capacity.root.queues default,hivetest,sparktest The queues at the this level (root is the root queue). yarn.scheduler.capacity.root.default.capacity 40 Default queue target capacity. yarn.scheduler.capacity.root.hivetest.capacity 30 Default queue target capacity. yarn.scheduler.capacity.root.sparktest.capacity 30 Default queue target capacity.

hadoop 优化方式

如果是mapreduce任务,还需要修改
mapred-site.xml

mapreduce.job.queuename default,hivetest,sparktest

hadoop 优化方式
这样就设置好了

将修改后的配置文件,发送到其他子节点,替换。
重启集群。
在mapreduce程序中可以指定执行队列。
Configuration conf = new Configuration();
conf.set(“mapreduce.job.queuename”, “sparktest”);

hdfs: 做HA高可靠。如果磁盘空间充足,可以增加副本数。
hdfs的文件存储:比如可以压缩文件等。

mapreduce程序层面的优化:
1 combine,可以将一些等幂,可以减少shuffle过程。提高计算效率。
job.setCombinerClass(reduce.class);
2 mapjoin,一个大表关联一个小表的时候。一般是512M以下。将小表广播复制到各个计算节点的内存中,用于匹配大表。

相关文章:

  • 2021-11-12
  • 2021-07-06
  • 2021-11-20
  • 2021-08-30
  • 2021-08-22
  • 2022-01-15
  • 2021-11-03
猜你喜欢
  • 2022-01-03
  • 2021-11-20
  • 2021-05-01
  • 2022-02-02
  • 2021-09-13
  • 2021-12-06
相关资源
相似解决方案