복붙노트

[HADOOP] Spark는 유언 집행자와 코어의 수와 관계를 형성합니다.

HADOOP

Spark는 유언 집행자와 코어의 수와 관계를 형성합니다.

나는 내 혼란을 없애기 위해 스파크에 관해 매우 어리석은 질문을 제기하고 있습니다. 나는 Spark에서 매우 새롭고 여전히 내부적으로 어떻게 작동하는지 이해하려고 노력하고 있습니다.

만약 내가 처리하거나 어딘가에 쓰고 싶은 입력 파일의 목록 (1000이라고 가정)이 있다면, 병합을 사용하여 파티션 번호를 100으로 줄이려고합니다.

이제 저는 Executor 당 5 개의 코어를 가진 12 명의 Executor와 함께이 작업을 수행했습니다. 이는 실행될 때 60 개의 작업을 의미합니다. 즉, 각각의 작업이 하나의 단일 파티션에서 독립적으로 작동합니까?

또는 같은 executor의 모든 작업이 같은 파티션에서 작동합니까?

해결법

  1. ==============================

    1.기본적으로 sparks에서는 파티션 수 = hdfs 블록인데 coalesce (100)가 지정 될 때 Spark는 입력 데이터를 100 개의 파티션으로 나눕니다.

    기본적으로 sparks에서는 파티션 수 = hdfs 블록인데 coalesce (100)가 지정 될 때 Spark는 입력 데이터를 100 개의 파티션으로 나눕니다.

    당신이지나 감에 따라 통과 될 수 있습니다.

    --num-executors 12 : 응용 프로그램에서 실행할 실행 프로그램의 수.

    --executor-core 5 : 실행 프로그램 별 코어 수입니다. 1 코어 = 한 번에 1 작업

    따라서 파티션의 실행은 다음과 같이 될 것입니다.

    12 개의 파티션은 각각 5 개의 작업 (스레드)을 가진 12 명의 실행자에 의해 처리됩니다.

    12 개의 파티션은 각각 5 개의 작업 (스레드)을 가진 12 명의 실행자에 의해 처리됩니다. ...

    4 개의 파티션은 각각 5 개의 작업 (스레드)을 가진 4 명의 실행자에 의해 처리됩니다.

    노트:   일반적으로 일부 집행자는 할당 된 작업을 신속하게 완료 할 수 있습니다 (데이터 지역, 네트워크 I / O, CPU 등 다양한 매개 변수). 따라서 스케줄 된 시간만큼 대기하여 처리 할 다음 파티션을 선택합니다.

  2. from https://stackoverflow.com/questions/38465692/spark-coalesce-relationship-with-number-of-executors-and-cores by cc-by-sa and MIT license