문제 해결
로깅
EMR on EKS는 Spark 리소스 프로파일을 사용하여 작업 실행을 분할합니다. Amazon EMR on EKS는 사용자 프로파일을 사용하여 사용자가 제공한 코드를 실행하는 반면, 시스템 프로필은 Lake Formation 정책을 적용합니다. 사용자 프로필로 실행된 컨테이너의 로그에는 MonitoringConfiguration을 사용해 StartJobRun 요청을 구성하여 액세스할 수 있습니다.
Spark 기록 서버
Spark 기록 서버에는 사용자 프로파일에서 생성된 모든 Spark 이벤트 및 시스템 드라이버에서 생성된 수정된 이벤트가 있습니다. 실행기 탭에서 사용자 및 시스템 드라이버의 모든 컨테이너를 볼 수 있습니다. 그러나 로그 링크는 사용자 프로파일에서만 사용할 수 있습니다.
Lake Formation 권한이 부족하여 작업 실패
작업 실행 역할에 액세스 중인 테이블에서 SELECT 및 DESCRIBE를 실행할 수 있는 권한이 있는지 확인하세요.
RDD 실행이 실패한 작업
EMR on EKS는 현재 Lake Formation 지원 작업에서 탄력적 분산 데이터세트(RDD) 작업을 지원하지 않습니다.
Amazon S3의 데이터 파일에 액세스할 수 없음
Lake Formation에서 데이터 레이크의 위치를 등록했는지 확인합니다.
보안 검증 예외
EMR on EKS에서 보안 검증 오류를 탐지했습니다. AWS Support에 문의하여 지원을 받으세요.
여러 계정에서 AWS Glue Data Catalog 및 테이블 공유
여러 계정에서 데이터베이스와 테이블을 공유하고 Lake Formation을 계속 사용할 수 있습니다. 자세한 내용은 Cross-account data sharing in Lake Formation 및 AWS Lake Formation을 사용하여 AWS Glue Data Catalog 데이터베이스 및 테이블 교차 계정을 공유하려면 어떻게 해야 합니까?
AWS 리전을 설정하지 않는 초기화 오류가 발생하는 Iceberg 작업
메시지는 다음과 같습니다.
25/02/25 13:33:19 ERROR SparkFGACExceptionSanitizer: Client received error with id = b921f9e6-f655-491f-b8bd-b2842cdc20c7, reason = IllegalArgumentException, message = Cannot initialize LakeFormationAwsClientFactory, please set client.region to a valid aws region
Spark 구성 spark.sql.catalog.이 유효한 리전으로 설정되어 있는지 확인합니다.catalog_name.client.region
SparkUnsupportedOperationException이 발생하는 Iceberg 작업
메시지는 다음과 같습니다.
25/02/25 13:53:15 ERROR SparkFGACExceptionSanitizer: Client received error with id = 921fef42-0800-448b-bef5-d283d1278ce0, reason = SparkUnsupportedOperationException, message = Either glue.id or glue.account-id is set with non-default account. Cross account access with fine-grained access control is only supported with AWS Resource Access Manager.
Spark 구성 spark.sql.catalog.이 유효한 계정 ID로 설정되어 있는지 확인합니다.catalog_name.glue.account-id
MERGE 작업 중에 "403 액세스 거부됨" 오류가 발생하며 Iceberg 작업이 실패함
메시지는 다음과 같습니다.
software.amazon.awssdk.services.s3.model.S3Exception: Access Denied (Service: S3, Status Code: 403, ... at software.amazon.awssdk.services.s3.DefaultS3Client.deleteObject(DefaultS3Client.java:3365) at org.apache.iceberg.aws.s3.S3FileIO.deleteFile(S3FileIO.java:162) at org.apache.iceberg.io.FileIO.deleteFile(FileIO.java:86) at org.apache.iceberg.io.RollingFileWriter.closeCurrentWriter(RollingFileWriter.java:129)
다음 속성을 추가하여 Spark에서 S3 삭제 작업을 비활성화합니다. --conf spark.sql.catalog..s3-table-name.s3.delete-enabled=false