[HADOOP] 하이브가지도 작업을 동시에 수행하도록 만드는 방법은 무엇입니까?
HADOOP하이브가지도 작업을 동시에 수행하도록 만드는 방법은 무엇입니까?
나는 하이브를 처음 사용하고 있는데 문제가 생겼습니다.
나는 다음과 같이 하이브에 테이블을 가지고있다.
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
그것은 작동하고 출력 결과는 내가 원하는 것입니다.
하지만 한 가지 문제가 있습니다. 하이브가 9 개의지도 작업을 생성하고 이러한 작업을 하나씩 실행합니다.
이 쿼리에 대한 설명을 실행하면 다음 메시지가 나타납니다.
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
9-17 단계가지도 작업 0-8에 해당하는 것으로 보입니다. 위의 설명 메시지에서 스테이지 10-17은 스테이지 9에만 의존하지만, 그래서 질문이 있는데, 왜 직업 1-8을 동시에 실행할 수 없습니까?
또는 작업 1-8을 동시에 실행할 수 있습니까?
당신의 도움을 주셔서 대단히 감사합니다!
해결법
-
==============================
1.hive-default.xml에는 "hive.exec.parallel"이라는 속성이있어 실행 작업을 병렬로 실행할 수 있습니다. 기본값은 "false"입니다. 이 능력을 습득하려면 "참"으로 변경할 수 있습니다. "hive.exec.parallel.thread.number"라는 또 다른 속성을 사용하여 최대로 병렬로 실행할 수있는 작업 수를 제어 할 수 있습니다.
hive-default.xml에는 "hive.exec.parallel"이라는 속성이있어 실행 작업을 병렬로 실행할 수 있습니다. 기본값은 "false"입니다. 이 능력을 습득하려면 "참"으로 변경할 수 있습니다. "hive.exec.parallel.thread.number"라는 또 다른 속성을 사용하여 최대로 병렬로 실행할 수있는 작업 수를 제어 할 수 있습니다.
자세한 내용은 https://issues.apache.org/jira/browse/HIVE-549를 참조하십시오.
from https://stackoverflow.com/questions/8868186/how-to-make-hive-run-mapreduce-jobs-concurrently by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 파티셔닝! 어떻게 그걸 만들었 니? 해시 함수를 사용 하시겠습니까? 기본 기능은 무엇입니까? (0) | 2019.06.17 |
---|---|
[HADOOP] httpfs 오류 상태 카테고리 READ는 상태 대기 모드에서 지원되지 않습니다. (0) | 2019.06.17 |
[HADOOP] Hadoop / Spark에서 proto3를 사용하려면 어떻게해야합니까? (0) | 2019.06.17 |
[HADOOP] Hadoop에서 기존 파일의 블록 크기 변경 (0) | 2019.06.17 |
[HADOOP] 하이브의 문자열을 타임 스탬프로 변환 (0) | 2019.06.17 |