[HADOOP] TEZ / 하이브에서 OOM
HADOOPTEZ / 하이브에서 OOM
[: 메모리 부족 하이브 / TEZ의 측면보기의 json_tuple와 함께 몇 가지 답변과 의견 후에 여기 얻은 지식을 기반으로 새 질문을]
내 쿼리 중 하나는 지속적으로 오류와 함께 실패합니다 :
ERROR : Status: Failed
ERROR : Vertex failed, vertexName=Map 1, vertexId=vertex_1516602562532_3606_2_03, diagnostics=[Task failed, taskId=task_1516602562532_3606_2_03_000001, diagnostics=[TaskAttempt 0 failed, info=[Container container_e113_1516602562532_3606_01_000008 finished with diagnostics set to [Container failed, exitCode=255. Exception from container-launch.
Container id: container_e113_1516602562532_3606_01_000008
Exit code: 255
Stack trace: ExitCodeException exitCode=255:
at org.apache.hadoop.util.Shell.runCommand(Shell.java:933)
at org.apache.hadoop.util.Shell.run(Shell.java:844)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:1123)
at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:237)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:317)
at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:83)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Container exited with a non-zero exit code 255
]], TaskAttempt 1 failed, info=[Error: Failure while running task:java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space
at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:173)
Java 힙 공간 : 키워드는 여기 java.lang.OutOfMemoryError와 것 같다.
나는 주위를 둘러 보았다하지만 난 TEZ에서 이해 무슨 생각을 아무도 나에게 도움이되지 :
내 쿼리가 매우 빠르게 이동 3 사 매퍼을 가지고, 4는 매번 죽는다. 다음은 쿼리의 TEZ 그래픽보기는 다음과 같습니다
이 이미지에서 :
전자 및 연락처 분할과 WHERE 절에서 선택한 하나의 파티션에 있습니다.
나는 이렇게지도의 수를 증가하려고 :
이 관련이 있다면, 여기에 몇 가지 다른 메모리 설정은 다음과 같습니다
나의 이해는 TEZ 따라서 완료 결국 오래 걸려 있지만, 많은 부하에서 작업을 분할 할 수 있습니다이었다. 내가 잘못 오전, 또는 거기에 내가 발견하지 않은 방법입니다?
상황 : hdp2.6, 직선을 통해 JSON 실행에 따라 땅딸막 한 측면보기를 사용 32기가바이트 램, 쿼리 8 개 데이타 노드.
해결법
-
==============================
1.이 문제는 명확하게 기울어 져 데이터 때문이다. 난 당신이 만회 균등하게 데이터를 분산하고있다 있도록 소스에서 쿼리를 선택에 COL에 의해, 배포 추가하는 것이 운영자 추천합니다. 아래 예에서 더 고르게 COL3 컬럼 ID 등의 데이터를 배포 예
이 문제는 명확하게 기울어 져 데이터 때문이다. 난 당신이 만회 균등하게 데이터를 분산하고있다 있도록 소스에서 쿼리를 선택에 COL에 의해, 배포 추가하는 것이 운영자 추천합니다. 아래 예에서 더 고르게 COL3 컬럼 ID 등의 데이터를 배포 예
ORIGINAL QUERY : insert overwrite table X AS SELECT COL1,COL2,COL3 from Y NEW QUERY : insert overwrite table X AS SELECT COL1,COL2,COL3 from Y distribute by COL3
-
==============================
2.저도 같은 문제를 가지고 모든 메모리 매개 변수가 도움이되지 않았다 증가.
저도 같은 문제를 가지고 모든 메모리 매개 변수가 도움이되지 않았다 증가.
그럼 난 MR로 전환하고 다음 오류가 발생했습니다.
Failed with exception Number of dynamic partitions created is 2795, which is more than 1000.
높은 값을 설정 한 후 내가 다시 TEZ에 반환하고, 문제가 해결되었다.
from https://stackoverflow.com/questions/48403972/oom-in-tez-hive by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 사용하여 내 프로그램을 배포 할 때 java.lang.NoSuchMethodError 불꽃을 제출 (0) | 2019.09.30 |
---|---|
[HADOOP] 하둡 오류 java.lang.NoSuchMethodException에서 사용자 정의 파티션 프로그램 : - <초기화> () (0) | 2019.09.30 |
[HADOOP] 어떻게 HDFS와 지역에서 ext4 파일 시스템에서 파일이 서로 일치합니까? (0) | 2019.09.30 |
[HADOOP] 어떻게 csv 파일에 청사진 JSON 파일을 변환하는? (0) | 2019.09.30 |
[HADOOP] 맵리 듀스 작업이 내 PHP 웹 페이지를 통해 자바로 작성된 러닝 (0) | 2019.09.30 |