2015-10-19 3 views
5

WRT 3ノードクラスタを強制的にハイブクエリを変更します。c3.2xlargeインスタンスからなる1つの以上減速

私は2つのテーブルを持っています。表Uには約6500万レコードがあり、緯度と経度のフィールドには が含まれています。表Lには約1百万件の レコードがあり、緯度と経度も含まれています。

UはORCテーブルとして格納されます。

タスクビット3960 * acos(cos(radians(l.lat)) * cos(radians(u.lat)) * cos(radians(l.long) - radians(u.long)) + sin(radians(l.lat)) * sin(radians(u.lat))) < 10.0あるべき緯度/経度 対の間のわずかの距離であるUレコードはL.

select l.id, count(u.id) from U u, L l where 3960 * 
acos(cos(radians(l.lat)) * cos(radians(u.lat)) * cos(radians(l.long) - 
radians(u.long)) + sin(radians(l.lat)) * sin(radians(u.lat))) < 10.0 
group by l.id; 

に位置の10マイルの半径 内に入る何を決定することである10未満マイルの制約。

問題:クエリが完了するまでに永久に取るように見えます。マップ のフェーズが比較的速く完了している間に、減少フェーズは固定されたパーセンテージ(80%ish)に固定されています

これはHiveが出す出力メッセージでこれに気づきました。私は7に mapred.reduce.tasksを設定することにより、減速の数を増やす試みたが、私は 成功しなかった1として、それは常に終わる1

: の数は、コンパイル時に決定作業を軽減します減速材の数を増やす。

This answerは、私は別の方法で私のクエリを記述多分ならば、私は以上1つの減速を強制できることを示唆しているようです。しかし、私はそれをまだできませんでした。

実行時間の見積もり:Lの単一の場所については、回答を得るのに約60秒かかります。そのアカウントでは、約700日である6000万秒かかるでしょう!あまりにも時間がかかるのでしょうか? Hadoopの場合でも

私もボックスの中央 でL内の場所で10マイルの正方形のボックスにより、10マイルで 経度緯度境界のようなaddional制約を入れて試してみましたが、かかる時間は今1つの場所のための40秒ですwhich は大きな改善ではありません。

質問:

1)どのように私は、レデューサーのより多くの数を強制することができますか? 2)実行時間の点でより良いクエリがありますか? 3)この問題の解決に役立つその他のアドバイス。

バージョン: Hadoopの - 2.7.0 のJava 1.7.0_80 ハイブ1.2。あなたはHadoopの2を使用している場合は1

+0

で説明したように機能の一部を移行する必要があります。https://cwiki.apache.org/confluence/display/Hive/Spatial +クエリ。 –

+0

どのバージョンのHadoopを使用していますか? Hadoop 2.xのmapreduce.job.reducesをmapreduce.job.reducesに置き換えます。 –

+0

U x Lのクロス結合があります。交差結合は行を乗算します。 WHERE句をON句に変換することはできますか? U U INNER FROM (3960の* ACOS(COS(ラジアン(l.lat))* COS(ラジアン(u.lat))* COS(ラジアン(l.long)ON L LのJOIN - ラジアンこのような(u.long))+ sin(ラジアン(l.lat))* sin(ラジアン(u.lat)))<10.0)GROUP BY l.id – leftjoin

答えて

0

、レデューサーを指定する正しい方法は次のとおりです。

SET mapreduce.job.reduces=7;

これは、私はあなたが記述している同じ動作を持っていたHadoopの2に加えられた変更に関連して、上記のコマンドに更新され、reduceタスクの設定に成功しました。 Hadoopが必要とする減速機の数を選択する方法がわかりませんが、状況によっては小さくなると思われ、パフォーマンスが大幅に遅れる可能性があります。

1

先に話したとおり、mapreduce.job.reduces

に置き換え

mapred.reduce.tasksは、すべての非推奨属性と、このarticleから、これらの非推奨値のための新しい値を見てください。非推奨属性は別に

、あなたにも、私はあなたがハイブのためのGISの拡張子を見るべきだと思う。このarticle

関連する問題