hiveQL计数器限制超出错误

时间:2017-04-12 12:39:47

标签: hiveql

我在Hiveql中运行创建表查询,并在运行时获得以下错误:

状态:失败 超出计数器限制:计数器太多:2001 max = 2000 FAILED:执行错误,从org.apache.hadoop.hive.ql.exec.tez.TezTask返回代码2。超出计数器限制:计数器太多:2001 max = 2000

我试图将计数器设置为更大的数字,即 设置tez.counters.max = 16000;

然而,它仍然会出现同样的错误。

我的查询包含13个左连接但数据集相对较小(1,000行)。当大约有10个连接时,查询确实有效,但由于我添加了其他连接,因此它已经开始失败。

有关如何配置此工作的任何建议将不胜感激!

2 个答案:

答案 0 :(得分:0)

您需要从失败的容器中找到真正的初始错误日志。您在此处显示的错误不是初始错误。 2001年容器(包括重启尝试)由于其他一些错误(您确实需要修复)而失败,然后所有作业都被终止,所有其他容器因失败的计数器限制而被杀死。转到Job tracker并找到一些失败的(未杀死的)容器并读取它的日志。真正的问题不在于限制,更改失败的计数器限制将无济于事。

答案 1 :(得分:0)

将查询分为多个步骤,然后运行它。

正如您所说,您的查询可用于10个联接,因此首先创建具有前10个联接的数据的表,然后使用新表,创建具有来自第一个表和其他三个表的数据的另一个表。

我面临在100个表上应用union all语句的相同问题,但是当我一次只运行10个表时,它就起作用了。

希望这会有所帮助!!!!