cdh YARN服务启用Uber优化

1.版本介绍

cdh 5.16.2

Uber模式虽然在hadoop2.X版本提供,但是使用的人并不多,默认是关闭的。

那么启用它有什么优点?

Uber模式只会向RM申请一个Container,这个Container里会启用AM,接着本任务的所有mapreduce计算都会在该Container内完成,不需要AM向RM申请其他Container。

简单理解,就是针对于小数据量的计算,都在一个Container中完成,避免多次向集群申请资源。节约了资源和时间。比如像小数据量的count等类似计算,就可以通过启用Uber加速运算。

 

2.Uber参数设置

在YARN服务的Performance参数中:

mapreduce.job.ubertask.enable=true  当该值为true,并且满足以下三个条件时,启用Uber优化

mapreduce.job.ubertask.maxreduces=1 当任务的reduce数<=1时,启用Uber优化

mapreduce.job.ubertask.maxmaps=4  当任务的map数<=4时,启用Uber优化

mapreduce.job.ubertask.maxbytes=64M  当输入的字节数<=64M时,启用Uber优化

yarn.app.mapreduce.am.resource.mb   AM的内存设置

yarn.app.mapreduce.am.resource.cpu-vcores  AM的cpu设置

 

3.使用经验

  • 为了让Uber模式下的任务计算更快,可以适当把AM的内存调大
  • 第一次启用Uber后,MR任务会报错,Error running local (uberized) 'child' : java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy()Z,是因为AM的环境变量中没有hadoop native相关lib

解决办法:修改参数 yarn.app.mapreduce.am.admin.user.env 为 LD_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

  • 使用uber后在container的日志中会出现错误,
     ERROR [uber-EventHandler] org.apache.hadoop.mapred.LocalContainerLauncher: Returning, interrupted : java.lang.InterruptedException  没有影响

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值