在应用程序主服务器上搁置的ApacheTez任务 [英] Apache Tez tasks on hold at the Application Master

查看:22
本文介绍了在应用程序主服务器上搁置的ApacheTez任务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遇到了TEZ问题,同时运行大约14个查询时,有些查询延迟超过5分钟,但集群利用率仅为14%。

这就是我所说的消息。

INFO SessionState: [HiveServer2-Background-Pool: Thread-322319]: Get Query Coordinator (AM)            308.84s

我的配置如下:

yarn.scheduler.maximum-allocation-mb=188000 
yarn.app.mapreduce.am.resource.mb = 16000 
tez.am.resource.memory.mb = 8000
hive.tez.container.size = 8192
tez.runtime.io.sort.mb 2048 
tez.am.launch.cmd-opts default - .8
tez.runtime.unordered.output.buffer.size-mb= 800 
hive.server2.tez.sessions.per.default.queue = 2 
tez.session.am.dag.submit.timeout.secs = 900  
tez.am.session.min.held.containers=8
tez.am.resource.memory.mb = 8000
hive.prewarm.enabled = TRUE

这是一个15节点、254 GB内存p/节点、32核p/节点的群集。

有可能发生什么事的线索吗?AM的尺码合适吗?我没有出现内存不足的错误,只是当一切都在运行时等待时间很长,但当它们都在一起时,它们只处理了3500万条记录。

谢谢

推荐答案

文档中没有很好地解释一种行为,即为了真正利用集群和所有其他内存配置,您必须设置默认队列,并且需要在要查询或连接Spark等时指定它们。

例如,在使用tez时,需要使用tez.name.queue={your queue name}才能充分利用它,从而实现纱线的平行化。

对于Spark,您需要在启动pyspark时或使用SPARK_Submit提交作业时指定--queue {your queue name}

为了使用上述功能,您需要使用hive.server2.tez.default.queues参数在纱线中设置队列,您需要使用tez的默认队列列表来设置该参数。需要注意的是,您可以创建队列而不将其列为默认队列,这样您就需要始终手动调出队列,并且查询不会进入任何默认队列。

这篇关于在应用程序主服务器上搁置的ApacheTez任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆