Amazon EMR on EKS에 대한 Apache Livy를 사용하여 Spark 애플리케이션 실행 - Amazon EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon EMR on EKS에 대한 Apache Livy를 사용하여 Spark 애플리케이션 실행

Apache Livy로 Spark 애플리케이션을 실행하기 전에 Amazon EMR on EKS에 대한 Apache Livy 설정Amazon EMR on EKS에 대한 Apache Livy 시작하기의 단계를 완료했는지 확인합니다.

Apache Livy를 사용하여 두 가지 유형의 애플리케이션을 실행할 수 있습니다.

  • 배치 세션 - Spark 배치 작업을 제출하는 Livy 워크로드의 한 유형.

  • 대화형 세션 - Spark 쿼리를 실행할 수 있는 프로그래밍 방식 및 시각적 인터페이스를 제공하는 Livy 워크로드의 한 유형.

참고

서로 다른 세션의 드라이버 및 실행기 포드는 서로 통신할 수 있습니다. 네임스페이스는 포드 간 보안을 보장하지 않습니다. Kubernetes는 지정된 네임스페이스 내 포드 하위 세트에 대한 선택적 권한을 허용하지 않습니다.

배치 세션 실행

배치 작업을 제출하려면 다음 명령을 사용합니다.

curl -s -k -H 'Content-Type: application/json' -X POST \ -d '{ "name": "my-session", "file": "entryPoint_location (S3 or local)", "args": ["argument1", "argument2", ...], "conf": { "spark.kubernetes.namespace": "<spark-namespace>", "spark.kubernetes.container.image": "public.ecr.aws/emr-on-eks/spark/emr-7.7.0:latest", "spark.kubernetes.authenticate.driver.serviceAccountName": "<spark-service-account>" } }' <livy-endpoint>/batches

배치 작업을 모니터링하려면 다음 명령을 사용합니다.

curl -s -k -H 'Content-Type: application/json' -X GET <livy-endpoint>/batches/my-session

대화형 세션 구성

Apache Livy를 사용하여 대화형 세션을 실행하려면 다음 단계를 참조하세요.

  1. 자체 호스팅 또는 SageMaker AI Jupyter 노트북과 같은 관리형 Jupyter 노트북에 액세스할 수 있는지 확인합니다. Jupyter Notebook에 sparkmagic이 설치되어 있어야 합니다.

  2. Spark 구성 spark.kubernetes.file.upload.path에 대한 버킷을 생성합니다. Spark 서비스 계정이 버킷에 대한 읽기 및 쓰기 액세스 권한을 보유하는지 확인합니다. Spark 서비스 계정을 구성하는 방법에 대한 자세한 내용은 서비스 계정에 대한 IAM 역할(IRSA)을 사용하여 액세스 권한 설정을 참조하세요.

  3. %load_ext sparkmagic.magics 명령을 사용하여 Jupyter Notebook에 sparkmagic을 로드합니다.

  4. %manage_spark 명령을 실행하여 Jupyter Notebook으로 Livy 엔드포인트를 설정합니다. 엔드포인트 추가 탭을 선택하고 구성된 인증 유형을 선택하며 노트북에 Livy 엔드포인트를 추가한 다음, 엔드포인트 추가를 선택합니다.

  5. 다시 %manage_spark를 실행하여 Spark 컨텍스트를 생성한 다음, 세션 생성 으로 이동합니다. Livy 엔드포인트를 선택하고 고유한 세션 이름을 지정하며 언어를 선택한 후 다음 속성을 추가합니다.

    { "conf": { "spark.kubernetes.namespace": "livy-namespace", "spark.kubernetes.container.image": "public.ecr.aws/emr-on-eks/spark/emr-7.7.0:latest", "spark.kubernetes.authenticate.driver.serviceAccountName": "<spark-service-account>", "spark.kubernetes.file.upload.path": "<URI_TO_S3_LOCATION_>" } }
  6. 애플리케이션을 제출하고 Spark 컨텍스트가 생성될 때까지 기다립니다.

  7. 대화형 세션의 상태를 모니터링하려면 다음 명령을 실행합니다.

    curl -s -k -H 'Content-Type: application/json' -X GET livy-endpoint/sessions/my-interactive-session

Spark 애플리케이션 모니터링

Livy UI를 사용하여 Spark 애플리케이션의 진행 상황을 모니터링하려면 http://<livy-endpoint>/ui 링크를 사용합니다.