2017-03-22 2 views
0

Spark 1.0.1을 사용하는 4 개의 노드 (각각 16 코어)를 가진 클러스터가 있습니다.스파크 계산의 파티션 수와 동시 작업 수를 계산하는 방법

저는 파티션을 다시 분할하여 200 개의 파티션을 가지고있는 RDD를 가지고 있습니다 (병렬성을 높이기를 희망합니다).

이 RDD에서 변환 (예 : 필터)을 수행 할 때 한 번에 64 개 이상의 작업 (4 개 노드에서 총 코어 수)이 발생할 수 없습니다. 작업이란 Application Spark UI 아래에 표시되는 작업 수를 의미합니다. spark.default.parallelism을 128로 명시 적으로 설정하려고 시도했는데 (128 개의 작업이 동시에 실행되기를 바랬습니다) 실행중인 응용 프로그램의 UI에서이를 확인했지만 아무 효과가 없었습니다. 아마도 이것은 '필터'에 대해 무시되며 기본값은 사용 가능한 총 코어 수입니다.

저는 Spark에 대해 상당히 새로운 것입니다. 그래서 나는 근본적으로 뭔가를 놓치거나 오해하고 있습니다. 어떤 도움을 주시면 감사하겠습니다.

답변

0

이것은 올바른 동작입니다. 각 "코어"는 한 번에 하나의 작업 만 실행할 수 있으며 각 작업은 파티션에 해당합니다. 클러스터의 코어가 64 개인 경우 한 번에 최대 64 개의 작업 만 실행할 수 있습니다.

노드 당 여러 개의 작업자를 실행하여 더 많은 집행자를 확보 할 수 있습니다. 그러면 클러스터에 더 많은 코어가 제공됩니다. 그러나 많은 코어가 있지만 각 코어는 한 번에 하나의 작업 만 실행합니다.

자세한 내용은 다음 스레드에서 볼 수 있습니다. How does Spark paralellize slices to tasks/executors/workers?

관련 문제