私はハイブに新たなんだと私は、問題が発生した、 ハイブを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を同時に実行させるにはどうすればよいですか?
ありがとうございました!
です。どうもありがとうございました! – SSolid
@kai zhang "hive.exec.parallel"をtrueに設定すると、独立したタスクが並行して実行されることを理解しています。それをfalseに設定する必要があるユースケースはどれですか? –
@MayankJaiswal私の知る限りでは、 "hive.exec.parallel"は非常に初期のバージョン(例えば0.7)では "false"であることが示唆されています。唯一の理由は、その時点でその機能がかなり安定していないということです。 –