Python 3.4 또는 3.6을 사용하여 PySpark 작업을 실행하도록 Amazon EMR을 구성하려면 어떻게 해야 하나요?

2분 분량
0

Python 3.4 또는 3.6이 Amazon EMR 클러스터 인스턴스에 설치되어 있지만 Spark는 Python 2.7을 실행 중입니다. Spark를 Python 3.4 또는 3.6으로 업그레이드하고 싶습니다.

간략한 설명

대부분의 Amazon EMR 릴리스 버전에서, 클러스터 인스턴스 및 시스템 애플리케이션은 기본적으로 다른 Python 버전을 사용합니다.

  • Amazon EMR 릴리스 버전 4.6.0-5.19.0: Python 3.4가 클러스터 인스턴스에 설치됩니다. Python 2.7은 시스템 기본값입니다.
  • Amazon EMR 릴리스 버전 5.20.0 이상: Python 3.6이 클러스터 인스턴스에 설치됩니다. 버전 5.20.0~5.29.0에서는 Python 2.7이 시스템 기본값입니다. Amazon EMR 버전 5.30.0 이상에서는 Python 3이 시스템 기본값입니다.

PySpark에서 사용하는 Python 버전을 업그레이드하려면 Python 3.4 또는 3.6이 설치된 디렉터리를 나타내는 spark-env 분류의 PYSPARK_PYTHON 환경 변수를 가리킵니다.

해결 방법

실행 중인 클러스터의 경우

Amazon EMR 릴리스 버전 5.21.0 이상

다음과 유사한 구성 객체를 사용하여 재구성 요청을 제출합니다.

[
  {
     "Classification": "spark-env",
     "Configurations": [
       {
         "Classification": "export",
         "Properties": {
            "PYSPARK_PYTHON": "/usr/bin/python3"
          }
       }
    ]
  }
]

Amazon EMR 릴리스 버전 4.6.0-5.20.x

1.    SSH를 사용하여 프라이머리 노드에 연결합니다.

2.    다음 명령을 실행하여 기본 Python 환경을 변경합니다.

sudo sed -i -e '$a\export PYSPARK_PYTHON=/usr/bin/python3' /etc/spark/conf/spark-env.sh

3.    pyspark 명령을 실행하여 PySpark가 올바른 Python 버전을 사용하는지 확인합니다.

[hadoop@ip-X-X-X-X conf]$ pyspark

이제 PySpark가 클러스터 인스턴스에 설치된 동일한 Python 버전을 사용하고 있음을 출력에서 확인할 수 있습니다. 예:

Python 3.4.8 (default, Apr 25 2018, 23:50:36)

Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /__ / .__/\_,_/_/ /_/\_\   version 2.3.1
      /_/

Using Python version 3.4.8 (default, Apr 25 2018 23:50:36)
SparkSession available as 'spark'.

Spark는 다음 PySpark 작업에 대해 새 구성을 사용합니다.

새 클러스터의 경우

Amazon EMR 릴리스 버전 4.6.0 이상을 사용하여 클러스터를 시작하는 경우에는 다음과 유사한 구성 객체를 추가하세요.

[
  {
     "Classification": "spark-env",
     "Configurations": [
       {
         "Classification": "export",
         "Properties": {
            "PYSPARK_PYTHON": "/usr/bin/python3"
          }
       }
    ]
  }
]

관련 정보

Spark 구성

Apache Spark

PySpark 설명서

AWS 공식
AWS 공식업데이트됨 2년 전