복붙노트

[HADOOP] Spark 독립 실행 형 클러스터가있는 작업자 노드에서 다중 실행 프로그램을 관리하는 방법은 무엇입니까?

HADOOP

Spark 독립 실행 형 클러스터가있는 작업자 노드에서 다중 실행 프로그램을 관리하는 방법은 무엇입니까?

지금까지는 YARN을 리소스 관리자로 사용하여 Hadoop 클러스터에서만 Spark를 사용했습니다. 이 유형의 클러스터에서는 정확히 얼마나 많은 executor가 실행되고 리소스 관리가 어떻게 작동하는지 알 수 있습니다. 그러나 독립형 스파크 클러스터를 사용하려고한다는 것을 알아두면 혼란스러워집니다. 내가 잘못한 곳을 바로 잡아라.

이 기사에서 기본적으로 작업자 노드는 노드의 모든 메모리에서 1GB를 뺀 값을 사용합니다. 그러나 나는 SPARK_WORKER_MEMORY를 사용함으로써 더 적은 메모리를 사용할 수 있음을 이해한다. 예를 들어 노드의 총 메모리가 32GB이지만 16GB를 지정하면 Spark 작업자는 해당 노드에서 16GB를 더 이상 사용하지 않습니다.

그러나 유언 집행자는 어떨까요? 노드 당 2 명의 실행자를 실행하려면 SPARK_WORKER_MEMORY의 절반이되도록 spark-submit 중에 executor 메모리를 지정하고 실행기 메모리를 분기로 지정하여 노드 당 4 명의 실행자를 실행하려면 어떻게할까요? SPARK_WORKER_MEMORY 중?

그렇다면, 집행자 메모리 외에도 집행자 코어를 올바르게 지정해야한다고 생각합니다. 예를 들어, 작업자에게 4 명의 Executor를 실행하려면 Executor Core를 SPARK_WORKER_CORES의 1/4이되도록 지정해야합니까? 그보다 더 큰 숫자를 지정하면 어떻게됩니까? 내가 Executor 메모리를 SPARK_WORKER_MEMORY의 1/4로 지정했지만 Executor 코어가 SPARK_WORKER_CORES의 절반 밖에되지 않는다는 것을 의미합니까? 이 경우 해당 노드에서 2 ~ 4 명의 실행자를 실행하게합니까?

해결법

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

    1.이것은 내 경험에서 집행 인, 코어 및 메모리의 수를 제어하는 ​​가장 좋은 방법입니다.

    이것은 내 경험에서 집행 인, 코어 및 메모리의 수를 제어하는 ​​가장 좋은 방법입니다.

  2. ==============================

    2.그래서 저는 Spark Standalone 클러스터를 조금 실험 해 보았습니다. 이것은 제가 알아 차린 것입니다.

    그래서 저는 Spark Standalone 클러스터를 조금 실험 해 보았습니다. 이것은 제가 알아 차린 것입니다.

    독립 실행 형 스파크 클러스터에서 여러 작업을 실행할 수있게하려면 spark-submit을 수행하는 동안 spark.cores.max 구성 등록 정보를 사용할 수 있습니다. 예를 들어, 이렇게.

    spark-submit <other parameters> --conf="spark.cores.max=16" <other parameters>
    

    따라서 독립 실행 형 스파크 클러스터가 총 64 개의 코어를 허용하고 프로그램에 16 개의 코어 만 제공하면 다른 스파크 작업은 나머지 48 개 코어를 사용할 수 있습니다.

  3. from https://stackoverflow.com/questions/54364403/how-multiple-executors-are-managed-on-the-worker-nodes-with-a-spark-standalone-c by cc-by-sa and MIT license