文档章节

Hive运行Tez引擎任务出现always pending

Yulong_
 Yulong_
发布于 2016/09/21 17:59
字数 475
阅读 429
收藏 1

问题描述

在Hive中使用Tez计算引擎执行SQL任务时,Map和Reduce都处于Pending状态。

输入图片说明

解决思路

查看任务的ApplicationMaster的container日志如下:

2016-09-13 17:14:52,103 [INFO] [DelayedContainerManager] |rm.YarnTaskSchedulerService|: Releasing held container as either there are pending but  unmatched requests or this is not a session, containerId=container_e14_1473755328049_0004_01_000002, pendingTasks=1, isSession=true. isNew=true
2016-09-13 17:14:52,350 [WARN] [AMRM Callback Handler Thread] |rm.YarnTaskSchedulerService|: Held container expected to be not null for a non-AM-released container
2016-09-13 17:14:52,351 [INFO] [AMRM Callback Handler Thread] |rm.YarnTaskSchedulerService|: Ignoring unknown container: container_e14_1473755328049_0004_01_000002

Hive执行Tez引擎任务中Cpu资源设置涉及到的主要参数如下所示:

  • mapreduce.map.cpu.vcores
  • mapreduce.reduce.cpu.vcores
  • yarn.scheduler.minimum-allocation-vcores
  • hive.tez.cpu.vcores

mapreduce.map.cpu.vcores
Default Value: 1
The number of virtual cores to request from the scheduler for each map task.

mapreduce.reduce.cpu.vcores
Default Value: 1
The number of virtual cores to request from the scheduler for each reduce task.

yarn.scheduler.minimum-allocation-vcores
Default Value: -1
The minimum allocation for every container request at the RM, in terms of virtual CPU cores. Requests lower than this won't take effect, and the specified value will get allocated the minimum.

hive.tez.cpu.vcores
Default Value: -1
Added In: Hive 0.14.0 with HIVE-8452
By default Tez will ask for however many CPUs MapReduce is configured to use per container. This can be used to overwrite the default.

解决

查看ambari上Hive的参数配置发现,参数hive.tez.cpu.vcores被设置为10。

在Hive客户端中set此参数为默认值或者1即可。

输入图片说明

进一步测试

  • 当hive.tez.cpu.vcores设置小于1时,将被mapreduce.map.cpu.vcores值覆盖。
  • mapreduce.reduce.cpu.vcores对于Tez任务来说不起任何作用不起作用。
  • yarn.scheduler.minimum-allocation-vcores对于Tez任务来说不起任何作用不起作用。

测试结果如下伪代码:

if hive.tez.cpu.vcores = 1 then
   任务Running。
elseif hive.tez.cpu.vcores > 1 then
   任务Pending。
elseif hive.tez.cpu.vcores < 1 then
   if mapreduce.map.cpu.vcores = 1 or 0 then
      任务Running
   elseif mapreduce.map.cpu.vcores > 1 then
      任务Pending
   elseif mapreduce.map.cpu.vcores < 0 then
      任务Error

© 著作权归作者所有

Yulong_
粉丝 10
博文 145
码字总数 253510
作品 0
朝阳
部门经理
私信 提问
CDH6.0.1集成tez-0.9.1计算引擎

参考文章: https://www.jianshu.com/p/9fb9f32e1f0f https://www.baidu.com/link?url=OgpwasnZi7H1dySN2T111sseEWDBaCCTC3DFV61G7756YbrkJCA8Y3UFaueyqnfN&wd=&eqid=daeb8b3500049cf3000000......

Sheav
09/19
21
0
Hive JDBC连接Tez(AM)容器长期不释放问题的解决方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bluishglc/article/details/86703939 Hive JDBC连接Tez(AM)容器长期不释放问题的解决方法 问题 有这样一个问...

bluishglc
01/30
0
0
hive 跑任务出现问题

我在跑一个hive任务的时候,任务出现问题,任务SQL 本身没有语法错误问题 我看了hadoop的每个attempt的日志,报错信息如下: 10:03:17.098 [main] ERROR org.apache.tez.dag.app.DAGAppMaste...

wei-chan
2017/05/10
469
0
提升小规模HDP集群的作业并行度

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bluishglc/article/details/86707084 对于团队使用的一些小型的Hadoop集群来说,由于资源有限,团队成员又多,...

bluishglc
01/30
0
0
如何使用 Hadoop 提升 Hive 查询性能

Apache Hive 是一个 Hadoop 之上构建起来的数据仓库,用于数据的分析、汇总以及查询。Hive 提供了一种类 SQL 的接口来查询被存储在各种数据源和文件系统中的数据。 使用 Tez Engine Apache ...

oschina
2017/03/08
2.9K
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud Sleuth 整合 feign 源码分析

org.springframework.cloud.sleuth.instrument.web.client.feign.TraceFeignClient 包括创建span一些参数

xiaomin0322
11分钟前
2
0
Less 延伸

extend 是一个 Less 伪类,它通过使用 :extend 选择器在一个选择器中扩展其他选择器样式。 扩展语法 扩展可以是附加到选择器,也可以是集中放置在规则,看上去像是带有选择器参数的可选伪类,...

凌兮洛
12分钟前
2
0
RedHat 7.0系统中安装mysql 5.7.22

在安装之前,首先要查看的是,你的系统中有没有已经安装过的情况。键入rpm -qa|grep mysql,如果无任何显示,则表示没有安装过相关组件,如果有,则根据显示出来的名字,键入rpm -e --nodeps...

最菜最菜之小菜鸟
17分钟前
2
0
RPA:企业信息孤岛的“克星”

为了降本增效,近来世界范围内掀起一股流程优化的热潮,转型升级成为众多企业时刻挂在嘴边的热词。不过在企业数字化转型的过程中,信息孤岛的出现,往往成为了企业升级的绊脚石。 信息孤岛:...

UiBot
17分钟前
2
0
我的测试

我的测试

daiison
18分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部