2017-12-02 6 views
2

각각 6GB의 메모리가있는 5 개의 작업자 노드 클러스터가 있습니다 (스파크 실행 메모리는 4608GB로 설정 됨).캐시 된 RDD에 얼마만큼의 메모리가 할당됩니까?

스파이가 내 집행자 중 한 명이 5.0GB의 메모리를 더 많이 사용하려고한다는 말로 기억이 부족합니다. 각 집행자가 5GB의 메모리를 확보하면 전체 클러스터 사이에 전체적으로 25GB의 메모리가 있어야합니다. 내 스파크 응용 프로그램의 시작, 내가 저장소 탭에서 내 RDDs 중 하나를 볼 때 (그것이이 시점에서 캐시에있는 유일한 RDD가)에서

ExecutorLostFailure (executor 4 exited caused by one of the running tasks) 
Reason: Container killed by YARN for exceeding memory limits. 5.0 GB of 5.0 
GB physical memory used. Consider boosting spark.yarn.executor.memoryOverhead. 

, 나는 참조 :

RDD Name Storage Level     Cached Partitions Fraction Cached Size in Memory Size on Disk 
myRDD  Memory Serialized 1x Replicated 20     100%  3.2 GB 0.0 B 

Host On Heap Memory Usage   Off Heap Memory Usage Disk Usage 
Node 1 643.5 MB (1931.3 MB Remaining) 0.0 B (0.0 B Remaining) 0.0 B 
Master 0.0 B (366.3 MB Remaining)  0.0 B (0.0 B Remaining) 0.0 B 
Node 2 654.8 MB (1920.0 MB Remaining) 0.0 B (0.0 B Remaining) 0.0 B 
Node 3 644.2 MB (1930.6 MB Remaining) 0.0 B (0.0 B Remaining) 0.0 B 
Node 4 656.2 MB (1918.6 MB Remaining) 0.0 B (0.0 B Remaining) 0.0 B 
Node 5 652.4 MB (1922.4 MB Remaining) 0.0 B (0.0 B Remaining) 0.0 B 

이것은 각 노드에는 약 2.5GB의 사용 가능한 메모리 만 있음을 보여줍니다. 저장 장치 탭은 스파크 응용 프로그램에 메모리 부족 오류가 발생하기 전에 캐시 된 RDD 25GB를 표시하는 것과 거의 비슷합니다.

캐시 된 RDD에 할당 된 메모리 용량은 어떻게 확인할 수 있습니까?

답변

2

작업을 제출하는 동안 spark.memory.storageFraction 매개 변수를 지정할 수 있습니다. 이 기본값은 0.5입니다.

따라서 실행 프로그램에 5G 메모리를 할당하는 경우 2.5G는 캐싱을 위해 예약되고 나머지 2.5G는 실행에 사용됩니다. Memory Management 가입일

: 퇴거 면역 저장 메모리

spark.memory.storageFraction

양은 S park.memory.fraction에 의해 따로 설정된 영역의 크기의 비율로 나타냈다. 이 값이 높을수록 실행 가능한 메모리가 적어지고 작업이 더 자주 디스크로 유출 될 수 있습니다. 이 값을 기본값으로 두는 것이 좋습니다. 자세한 내용은 this description을 참조하십시오.

관련 문제