스택큐힙리스트

어파치 스파크 워커의 노드 당 메모리를 변경하는 방법 본문

카테고리 없음

어파치 스파크 워커의 노드 당 메모리를 변경하는 방법

스택큐힙리스트 2023. 11. 28. 06:57
반응형

저는 Apache Spark 클러스터를 구성하고 있습니다.


1개의 마스터와 3개의 슬레이브로 클러스터를 실행할 때, 마스터 모니터 페이지에서 다음과 같이 표시됩니다:


메모리
2.0 GB (512.0 MB 사용 중)
2.0 GB (512.0 MB 사용 중)
6.0 GB (512.0 MB 사용 중)

저는 작업자들의 사용 중인 메모리를 늘리고 싶지만, 이에 대한 올바른 설정을 찾지 못했습니다. 다음과 같이 spark-env.sh를 변경했습니다:


export SPARK_WORKER_MEMORY=6g
export SPARK_MEM=6g
export SPARK_DAEMON_MEMORY=6g
export SPARK_JAVA_OPTS=-Dspark.executor.memory=6g
export JAVA_OPTS=-Xms6G -Xmx6G

하지만 사용 중인 메모리는 여전히 동일합니다. 사용 중인 메모리를 변경하려면 어떻게 해야 할까요?

답변 1

1.0.0+를 사용하고 spark-shell이나 spark-submit을 사용할 때는 --executor-memory 옵션을 사용하십시오. 예시:


spark-shell --executor-memory 8G ...

0.9.0 이하:


작업을 시작하거나 셸을 시작할 때 메모리를 변경하십시오. 우리는 spark-shell 스크립트를 수정하여 명령 줄 인수를 java 애플리케이션의 인수로 전달 할 수 있도록했습니다. 특히 다음과 같습니다:


OPTIONS=$@
...
$FWDIR/bin/spark-class $OPTIONS org.apache.spark.repl.Main $@

그런 다음 다음과 같이 spark 셸을 실행할 수 있습니다:


spark-shell -Dspark.executor.memory=6g

스탠드얼론 jar로 구성할 때는, spark context를 생성하기 전에 시스템 프로퍼티를 프로그래밍 방식으로 설정하고 해당 값을 명령 줄 인수로 전달합니다 (시스템 프로퍼티보다 간결하게 설정할 수 있습니다).


System.setProperty(spark.executor.memory, valueFromCommandLine)

기본 클러스터 변경에 대해서는 정확한 방법을 잘 모르겠습니다.


마지막으로 - 2GB 용량을 가진 2개의 노드와 6GB 용량을 가진 1개의 노드가 있다는 사실이 약간 걱정되네요. 사용할 수 있는 메모리는 가장 작은 노드인 2GB로 제한될 것입니다.

답변 2

아파치 스파크 워커의 노드당 메모리를 변경하는 방법
아파치 스파크는 대규모 데이터 처리를 위한 분산 처리 시스템으로 널리 사용되는 오픈 소스 프레임워크입니다. 스파크 클러스터는 마스터 노드와 여러 워커 노드로 구성되며, 이러한 워커 노드는 데이터 처리 작업을 수행합니다. 이 중 워커 노드에서 사용 가능한 메모리를 조정할 필요가 있다면, 다음의 단계를 따라 해보세요.
1. 워커 노드의 스파크 환경 파일 찾기:
워커 노드에서 사용되는 스파크 환경 설정 파일을 찾아야 합니다. 기본적으로 이 파일은 spark-defaults.conf라는 이름으로 저장됩니다. 이 파일은 스파크 설치 디렉토리의 conf 폴더에 위치해 있을 것입니다.
2. 스파크 환경 파일 열기:
해당 파일을 텍스트 에디터로 열어야 합니다. 터미널에서 vi나 nano 같은 텍스트 에디터를 사용하여 열 수 있습니다.
3. 메모리 구성 변경:
열린 스파크 환경 설정 파일에서 spark.executor.memory 항목을 찾으세요. 이 항목은 각 워커 노드의 메모리 구성을 정의합니다. 기본적으로는 1g로 설정되어 있을 것입니다. 이 값을 바꾸려면 g를 사용하여 원하는 메모리 양을 설정하세요. 예를 들어, 4g로 변경하면 4GB의 메모리가 할당될 것입니다.
4. 파일 저장 및 종료:
값을 변경한 후, 파일을 저장하고 종료하세요. 텍스트 에디터에서는 대개 Ctrl + X를 누른 후 Y와 Enter를 눌러 저장하고 종료할 수 있습니다.
5. 스파크 워커 노드 재시작:
마지막으로, 변경된 메모리 구성이 적용되려면 스파크 워커 노드를 다시 시작해야 합니다. 이를 위해 터미널에서 sudo service spark-worker restart 명령을 실행하세요. 이렇게 하면 변경된 메모리 구성이 적용되며, 워커 노드는 새로운 메모리 양으로 작업을 수행할 것입니다.
이제 스파크 워커 노드에서 메모리를 조정하는 방법에 대해 알게 되었습니다. 이러한 설정은 대규모 데이터 처리 작업을 위해 스파크 클러스터를 최적화하는 데 도움이 됩니다.

반응형
Comments