gpt4 book ai didi

azure - Hive 作业失败,来自 org.apache.hadoop.hive.ql.exec.tez.TezTask 的返回代码 1 和查询性能

转载 作者:可可西里 更新时间:2023-11-01 14:15:35 26 4
gpt4 key购买 nike

每天我都有一个 Hive 工作,为两个月的数据计算每刻钟的一些聚合。结果是向 Tez 提交了 5760 个作业。

作业失败,stderr 中出现以下错误:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.tez.TezTask

该错误可能在 2300 - 2500 个 tez 作业后发生。就在这个错误之前,Yarn Logs 中有很多以下日志:

2015-12-10 21:53:35,286 INFO [TezChild] task.ContainerReporter:在再次重试 getTask 之前休眠 200 毫秒。现在已经为空了2000ms后的下一个getTask sleep 消息

单个作业的执行时间急剧延长,从 20 秒增加到 100 秒。

我对我的问题没有任何线索,并且在yarn、Hadoop、hive 或tez 日志中找不到任何其他内容(没有异常(exception),没有任何内容被标记为错误)。

所以我有两个问题:在哪里可以找到日志中的更多信息或其他可以帮助我解决此问题的信息?

目前我们使用:

  • 最新版本的 Azure HDInsight 3.2
  • 作业通过 C# SDK 提交到集群
  • Hive 作业使用 tez

问题 2:我很确定我们没有以良好的方式进行聚合。对于每个聚合(即每个季度),我们应该检索行的先前值。我希望使用 LAG 函数,但我们无法传递谓词来查找先例值(我们需要不大于当前值的先例值)。因此,除了为需要计算的每个季度生成查询之外,我们找不到其他方法。有人知道我们如何在单个配置单元查询中做到这一点吗?

预先感谢您的帮助,最好的问候

最佳答案

原因:当启用 Kerberos 且 Hive 中的“hive.server2.enable.doAs”属性设置为 true 时,会出现此问题。设置此属性后,查询将查找“以最终用户身份运行而不是 Hive 用户为真”,这意味着最终用户必须出现在每个节点管理器本地。当最终用户不在本地时,就会出现上述错误。

解决方案:要解决此问题,请创建在本地运行 Hive 查询的最终用户或通过 AD/LDAP 提供它。

关于azure - Hive 作业失败,来自 org.apache.hadoop.hive.ql.exec.tez.TezTask 的返回代码 1 和查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34222169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com