Hive、Tez、Yarn资源问题总结以及优化参数

Hive、Tez、Yarn资源问题总结以及优化参数

  1. 问题解决

Hadoop版本:2.7.3

Hive版本: 2.1.1

Tez版本: 0.9.1

问题描述:Hive集成Tez后,配置默认选择的执行引擎为tez,如下hive-site.xml配置截图。

 

在服务器上直接执行hive命令,可以正常进入hive客户端,

执行 set hive.execution.engine;

 

当set hive.execution.engine=mr;以mr作为执行引擎时,执行一些聚合,统计类的sql,比如count(1) ,会直接报以下错误:DEFAULT_MR_AM_ADMIN_USER_ENV

咋看这种不明确的错误很懵逼,后查阅资料则是jar包冲突。

解决方法:

https://blog.csdn.net/cuichunchi/article/details/108611831

其中包括spark 的问题解决。

  1. 出现如下图异常:

 

 

表示没有可用的container容器分配了,由于container资源被抢占或者资源不足,而task最大的失败重试次数默认是4。故需要调整以下参数:

参数:用set 设置

描述

tez.am.task.max.failed.attempts

10

Task任务的重试次数

tez.am.max.app.attemps

5

AM自己失败的最大重试次数,默认2次,可能因为一些系统原因导致失联

hive.tez.container.size

不小于

yarn.scheduler.minimum-allocation-mb或者是等于

yarn.scheduler.maximum-allocation-mb的倍数

Tez AppMaster向RM申请的container大小,单位M

 

注意:hive.tez.container.size也不能过大,设置太大执行直接会以下错误:

 

  1. 出现如下图异常报错信息:

因为在mapred-sit.xml文件中配置的mapreduce.task.io.sort.mb=307,表示环形缓冲区的大小,

而上图上设置了tez.java.opts为128M,明显小于307M,从报错提示也能看出,故重新设置hive.tez.java.opts为307/0.8即可。

  1. 优化参数详解

背景

tez是hive的常用引擎之一,本文介绍tez常用的调试参数。主要是内存,map/reduce数量方面的调试。

Tez内存分布图:

Mapreduce内存分布图:

1.内存调试

tez.am.resource.memory.mb

默认值

参数说明

详细解释

128

Application Master分配的container大小,单位为M

 

tez.am.launch.cmd-opts

默认值

参数说明

详细解释

-Dlog4j.configurationFile=tez-container-log4j2.properties -Dtez.container.log.level=INFO -Dtez.container.root.logger=CLA

Tez AppMaster进程启动期间提供的命令行选项。 不要在这些启动选项中设置任何Xmx或Xms,以便Tez可以自动确定它们

不需要主动设置

hive.tez.container.size

默认值

参数说明

详细解释

128

Tez AppMaster向RM申请的container大小,单位M

不需要主动设置TEZ的AppMaster占用的container大小由TEZ自动跳转,但是向AM申请出来的container大小则需要本参数管理

hive.tez.java.opts(可以直接设置–XX:NewRatio=8)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值