2012-01-15 8 views
6

私はハイブに新たなんだと私は、問題が発生した、 ハイブをmapreduceジョブを同時に実行させる方法は?

は、私はこのようなハイブ内のテーブルを持っている:

create table td(id int, time string, ip string, v1 bigint, v2 int, v3 int, 
v4 int, v5 bigint, v6 int) PARTITIONED BY(dt STRING) 
ROW FORMAT DELIMITED FIELDS 
TERMINATED BY ',' lines TERMINATED BY '\n' ; 

そして、私のようなSQLを実行します。

from td 
INSERT OVERWRITE DIRECTORY '/tmp/total.out' select count(v1) 
INSERT OVERWRITE DIRECTORY '/tmp/totaldistinct.out' select count(distinct v1) 
INSERT OVERWRITE DIRECTORY '/tmp/distinctuin.out' select distinct v1 

INSERT OVERWRITE DIRECTORY '/tmp/v4.out' select v4 , count(v1), count(distinct v1) group by v4 
INSERT OVERWRITE DIRECTORY '/tmp/v3v4.out' select v3, v4 , count(v1), count(distinct v1) group by v3, v4 

INSERT OVERWRITE DIRECTORY '/tmp/v426.out' select count(v1), count(distinct v1) where v4=2 or v4=6 
INSERT OVERWRITE DIRECTORY '/tmp/v3v426.out' select v3, count(v1), count(distinct v1) where v4=2 or v4=6 group by v3 

INSERT OVERWRITE DIRECTORY '/tmp/v415.out' select count(v1), count(distinct v1) where v4=1 or v4=5 
INSERT OVERWRITE DIRECTORY '/tmp/v3v415.out' select v3, count(v1), count(distinct v1) where v4=1 or v4=5 group by v3 

それ出力結果は私が望むものです。

1つの問題があります。ハイブは9つのマップ削減ジョブを生成し、これらのジョブを1つずつ実行します。

私はこのクエリに説明実行し、私は次のようなメッセージだ:舞台、それはその段階9-17ジョブ0-8
をMapReduceのに対応するが、上記の説明のメッセージからされているようだ

STAGE DEPENDENCIES: 
    Stage-9 is a root stage 
    Stage-0 depends on stages: Stage-9 
    Stage-10 depends on stages: Stage-9 
    Stage-1 depends on stages: Stage-10 
    Stage-11 depends on stages: Stage-9 
    Stage-2 depends on stages: Stage-11 
    Stage-12 depends on stages: Stage-9 
    Stage-3 depends on stages: Stage-12 
    Stage-13 depends on stages: Stage-9 
    Stage-4 depends on stages: Stage-13 
    Stage-14 depends on stages: Stage-9 
    Stage-5 depends on stages: Stage-14 
    Stage-15 depends on stages: Stage-9 
    Stage-6 depends on stages: Stage-15 
    Stage-16 depends on stages: Stage-9 
    Stage-7 depends on stages: Stage-16 
    Stage-17 depends on stages: Stage-9 
    Stage-8 depends on stages: Stage-17 

を10-17はステージ9のみに依存します。
質問があります。なぜジョブ1-8を同時に実行できないのですか?

また、ジョブ1-8を同時に実行させるにはどうすればよいですか?

ありがとうございました!

答えて

5

hive-default.xmlには、「hive.exec.parallel」という名前のプロパティがあり、実行ジョブを並行して実行できます。デフォルト値は "false"です。この能力を得るには、それを「真」に変更することができます。他のプロパティ "hive.exec.parallel.thread.number"を使用して、せいぜい並行して実行できるジョブの数を制御することができます。

詳細については、https://issues.apache.org/jira/browse/HIVE-549

+0

です。どうもありがとうございました! – SSolid

+0

@kai zhang "hive.exec.parallel"をtrueに設定すると、独立したタスクが並行して実行されることを理解しています。それをfalseに設定する必要があるユースケースはどれですか? –

+0

@MayankJaiswal私の知る限りでは、 "hive.exec.parallel"は非常に初期のバージョン(例えば0.7)では "false"であることが示唆されています。唯一の理由は、その時点でその機能がかなり安定していないということです。 –

関連する問題