[HADOOP] 스파크 RDD - 항상 RAM에있는 파티션입니까?
HADOOP스파크 RDD - 항상 RAM에있는 파티션입니까?
우리는 모두 Spark이 계산을 메모리에서 수행한다는 것을 알고 있습니다. 나는 단지 다음에 호기심이 많다.
해결법
-
==============================
1.네, 모든 10 개의 RDD 데이터가 스파크 작업자 RAM에 퍼집니다. 모든 기계에 반드시 필요한 것은 아니지만 각 RDD의 파티션이 있어야합니다. 물론 RDD는 느리게 평가 될 때 수행되는 작업이있을 경우에만 메모리에 데이터를 저장합니다.
네, 모든 10 개의 RDD 데이터가 스파크 작업자 RAM에 퍼집니다. 모든 기계에 반드시 필요한 것은 아니지만 각 RDD의 파티션이 있어야합니다. 물론 RDD는 느리게 평가 될 때 수행되는 작업이있을 경우에만 메모리에 데이터를 저장합니다.
Spark RDD 또는 Dataframe이 더 이상 사용되지 않으면 자동으로 unpersist합니다. RDD 나 Dataframe이 캐시되어 있는지 알아 보려면 Spark UI -> Storage 테이블로 들어가서 메모리 세부 사항을보십시오. df.unpersist () 또는 sqlContext.uncacheTable ( "sparktable")을 사용하여 메모리에서 df 또는 테이블을 제거 할 수 있습니다. 링크를 더 읽으려면
RDD가 메모리에 맞지 않으면 일부 파티션이 캐싱되지 않고 필요할 때마다 즉시 다시 계산됩니다. 링크를 더 읽으려면
질문에 대답하기 위해 RDD에서 실행 된 작업이 있고 메모리를 찾을 수없는 경우 캐시되지 않은 / 고정되지 않은 RDD를 제거 할 수 있습니다.
일반적으로 우리는 많은 계산 및 / 또는 셔플이 필요 (즉, 값 비싼 네트워크 I / O를 피하기 위해 기본적으로 스파크가 지속되는 RDD를 유지해야하는) RDD를 유지하므로 지속적인 RDD에서 수행 된 모든 동작이 오히려 해당 작업을 수행합니다 계보 그래프 당 처음부터 다시 계산하는 것보다 여기에 RDD 지속성 수준을 확인하십시오.
-
==============================
2.답 : RDD에는 "계보 그래프"(적용된 변형) 만 포함됩니다. 따라서 RDD는 데이터가 아닙니다! RDD에서 모든 작업을 수행 할 때 모든 변환이 작업 전에 적용됩니다. 따라서 명시 적으로 (물론 암시 적으로 캐시하는 최적화가있는 경우) 캐시 된 경우 작업이 수행 될 때마다 전체 변환 및 작업이 다시 수행됩니다.
답 : RDD에는 "계보 그래프"(적용된 변형) 만 포함됩니다. 따라서 RDD는 데이터가 아닙니다! RDD에서 모든 작업을 수행 할 때 모든 변환이 작업 전에 적용됩니다. 따라서 명시 적으로 (물론 암시 적으로 캐시하는 최적화가있는 경우) 캐시 된 경우 작업이 수행 될 때마다 전체 변환 및 작업이 다시 수행됩니다.
예 - HDFS에서 RDD를 생성하고 변형을 적용한 다음 변환 된 RDD에서 두 가지 작업을 수행하면 HDFS 읽기 및 변환이 두 번 실행됩니다.
따라서 재 계산을 피하려면 RDD를 지속해야합니다. 지속성을 위해 HEAP, Off-Heap, Disk에서 하나 이상의 조합을 선택할 수 있습니다.
답 : RDD가 단지 "계보 그래프 (lineage graph)"일 뿐이라는 점을 감안할 때, RDD는 호스팅 언어와 동일한 범위와 평생 규칙을 따를 것입니다. 그러나 계산 된 결과를 이미 유지 한 경우에는 unpersist 수 있습니다 !!!
답변 : 실제로 메모리에 RDD를 지속 / 캐시했다고 가정하면 메모리에 저장됩니다. 그리고 LRU는 데이터를 제거하는 데 사용됩니다. 메모리 관리가 스파크에서 어떻게 수행되는지에 대한 더 많은 정보를 참조하십시오.
from https://stackoverflow.com/questions/40732962/spark-rdd-is-partitions-always-in-ram by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] hadoop에서 SUCCESS 및 part-r-00000 파일이란 무엇입니까? (0) | 2019.06.02 |
---|---|
[HADOOP] Hadoop : map / reduce로 처리 할 (많은) 사진 이미지에 액세스하는 방법? (0) | 2019.06.02 |
[HADOOP] HDFS의 대형 블록 크기! 사용되지 않은 공간은 어떻게 계산됩니까? (0) | 2019.06.02 |
[HADOOP] HBase에 데이터를 프로그램 방식으로 대량로드하는 가장 빠른 방법은 무엇입니까? (0) | 2019.06.02 |
[HADOOP] hadoop 2.2.0 64 비트 설치가 시작되지만 시작할 수 없음 (0) | 2019.06.02 |