TezSession has already shutdown. No cluster diagnostics found.

3 篇文章 0 订阅
1 篇文章 0 订阅

问题

ERROR [HiveServer2-Background-Pool: Thread-5702712]: tez.TezTask (:()) - Failed to execute tez graph.
org.apache.tez.dag.api.SessionNotRunning: TezSession has already shutdown. No cluster diagnostics found.
        at org.apache.tez.client.TezClient.waitTillReady(TezClient.java:1013) ~[tez-api-0.9.1.3.1.0.0-78.jar:0.9.1.3.1.0.0-78]
        at org.apache.tez.client.TezClient.waitTillReady(TezClient.java:982) ~[tez-api-0.9.1.3.1.0.0-78.jar:0.9.1.3.1.0.0-78]
        at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.startSessionAndContainers(TezSessionState.java:538) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
        at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.openInternal(TezSessionState.java:453) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
        at org.apache.hadoop.hive.ql.exec.tez.TezSessionPoolSession.openInternal(TezSessionPoolSession.java:124) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
        at org.apache.hadoop.hive.ql.exec.tez.TezSessionState.open(TezSessionState.java:375) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
        at org.apache.hadoop.hive.ql.exec.tez.TezTask.ensureSessionHasResources(TezTask.java:372) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
        at org.apache.hadoop.hive.ql.exec.tez.TezTask.execute(TezTask.java:199) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
        at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:210) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
        at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:100) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
        at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:2711) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
        at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:2382) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:2054) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1752) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1746) ~[hive-exec-3.1.0.3.1.0.0-78.jar:3.1.0.3.1.0.0-78]

解决

在资源有限的前提下,我们不能让一个session长期存在,只要存在一个session就会有一个core被占用着无法释放,所以我们要让session存在的时间尽可能的短!而控制一个session生命周期长短的参数其实主要是它的超时时间,这个参数是:tez.session.am.dag.submit.timeout.secs, 在Hive和Tez上都有这个配置,默认值是一个比较大的数值,如果我们想尽可能早的释放掉资源,就把这个值设为0,最为了稳妥,最好是在Tez和Hive上都进行设置!
hive修改tez.session.am.dag.submit.timeout.secs=0
在这里插入图片描述
tez修改tez.session.am.dag.submit.timeout.secs=0
在这里插入图片描述
修改Session per queue =10 指定每个队列上tez的会话数,确定队列上的并行数。
在这里插入图片描述

问题

后面排查info日志,yarn内存资源不够了,队列提交不了任务

在这里插入图片描述

解决

1.最简单粗暴,加资源
2.让任务错峰运行,提到资源利用率,这里我是通过yarn,参数设置时,使他在其他队列空闲时,可以抢占一些资源

yarn.scheduler.capacity..user-limit-factor:这个参数的含义是允许单个用户最多可获取的队列资源的倍数。默认值为1,确保单个用户无论集群有多空闲,永远不会占用超过队列配置的资源,即yarn.scheduler.capacity..capacity的值,该参数是一个浮点值。按照这个理解,当把这个参数设置为超过1时,用户可以使用的资源将超过队列配置的资源,但应该不能超过队列配置的最大资源,否则最大资源的配置就没有意义了;如果这个参数的值小于1时,用户可以使用的资源将低于队列配置的资源。
在这里插入图片描述
最大是50%,最小是4%,所以
yarn.scheduler.capacity.root.default.user-limit-factor设为12.5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值