2016-06-29 13 views
2

以下は、実行エンジンを使ってHiveをtezとして実行しようとしているクエリです。Tezで無限の時間を稼働しているハイブクエリ

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; 
  • は、私はそれがどんな結果なし時間 稼働し続けハイブで私のデータのクエリ上で実行されますが、構文的にクエリを超える正しい場合。
  • TABLEAとTABLEBには、何百万ものレコードがあります。

データ形式を変更し、コンテナのサイズを増やし、減速器の数を変更し、ヒープサイズを変更しようとしました。どのようなパラメータを変更しても、クエリは停止しています。

私のさらなる調査では、where条件とwindow関数によってクエリが無限に実行されていることがわかりました。

  • 巨大 データに端から端までを実行して、クエリを行います変更はどのようなものです:ここでは

    は私の質問ですか?

おかげであなたの助け

答えて

0

のために私は、これは、メモリ割り当てや減速回数が原因ではないと思います。データの歪みによって引き起こされる可能性があります。その点からも分析してください。このリンクは次のように役立ちます: https://cwiki.apache.org/confluence/display/Hive/Skewed+Join+Optimization

以下のリンクは斜めの表とバケットのリストを示しています。読んでお見逃しなく。

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

ありがとう!

関連する問題