繁体   English   中英

Hive查询在Tez上运行无限时间

[英]Hive query running infinite time on Tez

下面是我试图在执行单元为tez的Hive上运行的查询。

SELECT A.CITY, A.NAME, B.PRICE
  ,(ROW_NUMBER() OVER (PARTITION BY A.NAME ORDER BY B.PRICE) ) AS RNUM
  FROM TABLE1 A
  LEFT JOIN TABLE2 B 
   ON A.NAME = B.NAME 
   WHERE ( A.COLUMN2 >= B.COLUMN3 AND A.COLUMN2 < B.COLUMN4)
GROUP BY A.CITY, A.NAME, B.PRICE;
  • 当我对Hive中的数据执行以上查询时,它会连续运行数小时而没有任何结果,但是从语法上讲,以上查询是正确的。
  • TABLEA和TABLEB都有数百万条记录。

我尝试更改数据格式,增加容器大小,更改reducer的数量以及更改堆大小。 无论我更改什么参数,查询都会卡住。

在我的进一步调查中,我注意到where条件和window函数导致查询无限运行。

这是我的问题:

  • 有什么变化将使查询在海量数据上端对端运行?

谢谢你的帮助

我猜这不是由内存分配或减少器数量引起的。 可能是由于数据偏斜引起的。 从这一点上也进行分析。 该链接将帮助您: https : //cwiki.apache.org/confluence/display/Hive/Skewed+Join+Optimization

下面的链接提供了有关偏斜表和列表存储的见解。 不要错过阅读。

https://cwiki.apache.org/confluence/display/Hive/ListBucketing

谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM