내용으로 건너뛰기

AWS Glue 대화형 세션, Sparkmagic 커널 또는 PySparkProcessor를 사용하여 빅 데이터 워크로드를 실행하도록 SageMaker AI 노트북 인스턴스를 구성하려면 어떻게 해야 합니까?

4분 분량
0

AWS Glue 대화형 세션, PySparkProcessor 또는 Sparkmagic 커널을 사용하여 빅 데이터 워크로드를 실행하도록 Amazon SageMaker AI 노트북 인스턴스를 구성하려고 합니다.

해결 방법

Spark 및 PySpark 워크로드를 실행하도록 SageMaker AI 노트북 인스턴스를 구성하려면 다음 해결 방법 중 하나를 완료하십시오.

노트북 인스턴스의 AWS Glue 대화형 세션 구성

Apache Spark 및 PySpark 워크로드를 실행하는 서버리스 옵션의 경우 노트북 인스턴스에 AWS Glue 대화형 세션을 구성하십시오. 노트북 인스턴스를 시작하면 대화형 세션에서 PySpark 커널과 Spark 커널이 생성됩니다. 그런 다음, Jupyter 또는 JupyterLab 애플리케이션 런처 탭에서 설치된 커널 중 하나를 사용할 수 있습니다.

AWS Glue 대화형 세션에 대한 권한 부여

다음 단계를 완료하십시오.

  1. AWS Identity and Access Management(IAM) 콘솔을 엽니다.
  2. 탐색 창의 액세스 관리에서 역할을 선택합니다.
  3. SageMaker AI 노트북 인스턴스에 사용하는 실행 역할을 선택합니다.
  4. JSON 편집기에서 다음과 같은 인라인 사용자 지정 IAM 정책을 만듭니다.
    {
        "Version": "2012-10-17",		 	 	
        "Statement": [
            {
                "Sid": "uniqueStatementId",
    
                "Effect": "Allow",
                "Action": [
    	            "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "YOUR-IAM-ROLE-ARN"
            }
        ]
    }
    참고: YOUR-IAM-ROLE-ARN을 노트북 인스턴스 IAM 실행 역할의 Amazon 리소스 이름(ARN)으로 바꾸십시오.
  5. AWS Glue 권한을 IAM 역할에 부여하려면 권한 추가 드롭다운 메뉴에서 정책 연결을 선택합니다. 그런 다음, AwsGlueSessionUserRestrictedServiceRole을 검색하고 정책 연결을 선택합니다.
  6. AWS Glue가 IAM 역할을 수임하도록 허용하려면 신뢰 관계 탭을 선택한 다음, glue.amazonaws.com을 서비스 목록에 추가합니다. 신뢰 정책이 다음 예와 비슷한지 확인합니다.
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "",
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "sagemaker.amazonaws.com",
                        "glue.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

노트북 인스턴스에 AWS Glue 대화형 세션 커널 설치

다음 단계를 완료하십시오.

  1. 시작 시 AWS Glue 커널을 자동으로 설치하려면 다음 수명 주기 구성 스크립트를 만듭니다.

    #!/bin/bash
    
    set -e
    
    # Start conda environment
    sudo -u ec2-user -i <<'EOF'
    
    # Activate conda default environment
    source /home/ec2-user/anaconda3/bin/activate JupyterSystemEnv
    
    # Install/upgrade packages for boto3 and aws-glue-sessions
    pip3 install --upgrade jupyter boto3 aws-glue-sessions
    echo "AWS Glue Sessions Installed Successfully"
    
    # Install Glue kernels
    install-glue-kernels
    echo "Glue Kernels Installed Successfully"
    
    # Deactivate conda environment
    conda deactivate
    
    EOF
    # Ensure script reports success
    echo "Lifecycle configuration complete!"
    systemctl restart jupyter-server
    sudo touch /home/ec2-user/glue_ready
  2. 노트북 인스턴스로 이동한 다음, 인스턴스가 서비스 중 상태가 아닌지 확인합니다.

  3. 수명 주기 구성 스크립트를 연결하려면 노트북 인스턴스 설정을 선택한 다음, 편집을 선택합니다.

  4. 추가 구성수명 주기 구성 드롭다운 목록에서 수명 주기 구성 스크립트를 선택합니다.

  5. 노트북 인스턴스 업데이트를 선택합니다.
    참고: 노트북 인스턴스를 업데이트하는 데 몇 분이 걸릴 수 있습니다.

  6. 노트북 인스턴스를 시작합니다.

  7. JupyterLab을 연 다음, 런처 탭을 선택합니다.

  8. AWS Glue Spark 또는 AWS Glue PySpark 커널을 선택하여 데이터 워크로드를 실행합니다.
    참고: 워크로드를 처리한 후 AWS Glue에서 요금이 계속 발생하지 않도록 JupyterLab에서 커널을 종료하십시오.

AWS Glue 대화형 세션을 구성하는 방법에 대한 자세한 내용은 Jupyter 및 AWS Glue Studio 노트북의 AWS Glue 대화형 세션 구성을 참조하십시오.

SageMaker AI 작업을 처리하도록 PySparkProcessor 구성

PySparkProcessor를 사용하여 PySpark 스크립트를 처리 작업으로 실행할 수 있습니다. 자세한 내용은 SageMaker Read the Docs 웹 사이트의 PySparkProcessor를 참조하십시오.

참고: PySparkProcessor는 이미 빌드된 SageMaker AI Spark 컨테이너를 사용합니다. framework_version, py_versioncontainer_version 인수만 구성할 수 있습니다.

사용할 수 있는 노트북의 예는 GitHub 웹 사이트의 sagemaker-spark-processing.ipynb를 참조하십시오.

SageMaker AI Sparkmagic 커널의 Amazon EMR 백엔드 클러스터 구성

Sparkmagic 커널에는 백엔드 Amazon EMR 클러스터가 필요합니다. 백엔드 Amazon EMR 클러스터 없이 Sparkmagic 커널을 사용하는 경우 다음과 같은 오류 메시지가 표시됩니다.

"The code failed because of a fatal error: Error sending http request and maximum retry encountered..."

Amazon EMR에서 실행되는 Spark 클러스터를 설정하여 노트북 인스턴스에 연결하려면 Amazon EMR에서 Spark 지원 Amazon SageMaker AI 노트북 빌드를 참조하십시오.

연결을 확인한 후 다음 명령을 실행하여 sagemaker-studio-analytics-extension을 업그레이드합니다.

pip install --upgrade sagemaker-studio-analytics-extension

최신 버전의 sagemaker-studio-analytics-extension은 기본 60초 서버 세션 제한 시간을 120초로 재정의합니다. 자세한 내용은 Livy 연결 중단 또는 실패 문제 해결을 참조하십시오.

확장 프로그램을 업데이트한 후 PySpark 커널로 Jupyter Notebook을 시작하고 연결을 테스트합니다. 연결에 성공하면 다음과 비슷한 메시지가 표시됩니다.

"Starting Spark application … SparkSession available as 'spark' "

연결한 후 PySpark를 가져와서 워크로드를 실행합니다.

관련 정보

AWS Glue Studio에 대한 IAM 권한 설정

대화형 세션을 통한 AWS Glue 작업 구축

AWS 공식업데이트됨 일 년 전