2017-04-27 1 views
0

스파크에서 셔플이 어떻게 발생하는지 이해해야합니다. 셔플 링이 BYKEY 연산의 성능 오버 헤드인지 여부 일반적으로 RDD의 경우 셔플 링이 어떻게 일어나며 RDD를 페어링하거나 셔플 링이 어떻게 이루어 지는지 조인합니다. 예를 들어 RDD에서 설명하고 RDD를 쌍으로 설명하면 큰 도움이됩니다.스파크 셔플 링

+1

과 같이 표시됩니다. https : //0x0fff.com/spark-architecture-shuffle/ –

답변

0

ByKey Operations에서 셔플 링이 발생하면 오버 헤드가 발생하고 특정 워커 노드가 처리 할 특정 키 집합이 생성됩니다.

groupByKey() 및 rdd.toDebugString을 수행하면 'groupByKey'의 경우 Random Shuffled가 표시되는 RDD 단계가 표시됩니다. 당신이 1 아래의 모든 유사한 키를 가져올 것이 데이터로 구성된 RDD에 GroupByKey에서를 수행 할 경우 지금

Node 1 -> Contains -> ("California", "San Francisco"), ("Texas", "Dallas") 

Node 2 -> Contains -> ("Utah", "Salt Lake City"), ("California", "San Jose") 

Node 3 -> Contains -> ("Texas", "Austin"), ("Utah", "St.George") 

(가정 데이터 쌍 RDD 형태입니다) : 그래서 예를 들어

는 3 개 노드가 있다고 가정하자 마디. 따라서 Shuffling 이후에 데이터는

Node 1 -> Contains -> ("California", Iterable(("San Francisco", "SanJose")))   

Node 2 -> Contains -> ("Utah", Iterable(("Salt Lake City", "St.George"))) 

Node 3 -> Contains -> ("Texas", Iterable(("Austin"), ("Dallas"))) 
관련 문제