기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
지원되는 스트리밍 커넥터
스트리밍 커넥터는 스트리밍 소스에서 데이터를 쉽게 읽을 수 있고 스트리밍 싱크에 데이터를 쓸 수도 있습니다.
다음은 지원되는 스트리밍 커넥터입니다.
Amazon Kinesis Data Streams 커넥터
Apache Spark용 Amazon Kinesis Data Streams 커넥터를 사용하면 Amazon Kinesis Data Streams에서 데이터를 소비하고 쓰는 스트리밍 애플리케이션 및 파이프라인을 빌드할 수 있습니다. 커넥터는 샤드당 최대 2MB/초의 전용 읽기 처리량 속도로 향상된 팬아웃 소비를 지원합니다. 기본적으로 Amazon EMR Serverless 7.1.0 이상에는 커넥터가 포함되어 있으므로, 추가 패키지를 빌드하거나 다운로드하지 않아도 됩니다. 커넥터에 대한 자세한 내용은 GitHub의 spark-sql-kinesis-connector
다음은 Kinesis Data Streams 커넥터 종속성을 사용하여 작업 실행을 시작하는 방법에 대한 예제입니다.
aws emr-serverless start-job-run \ --application-id
<APPLICATION_ID>
\ --execution-role-arn<JOB_EXECUTION_ROLE>
\ --mode 'STREAMING' \ --job-driver '{ "sparkSubmit": { "entryPoint": "s3://<Kinesis-streaming-script>
", "entryPointArguments": ["s3://<DOC-EXAMPLE-BUCKET-OUTPUT>
/output"], "sparkSubmitParameters": "--conf spark.executor.cores=4 --conf spark.executor.memory=16g --conf spark.driver.cores=4 --conf spark.driver.memory=16g --conf spark.executor.instances=3 --jars /usr/share/aws/kinesis/spark-sql-kinesis/lib/spark-streaming-sql-kinesis-connector.jar" } }'
Kinesis Data Streams에 연결하려면 VPC 액세스로 EMR Serverless 애플리케이션을 구성하고 VPC 엔드포인트를 사용하여 프라이빗 액세스를 허용하거나 NAT 게이트웨이를 사용하여 퍼블릭 액세스를 얻어야 합니다. 자세한 내용은 VPC 액세스 구성을 참조하세요. 또한 필요한 데이터 스트림에 액세스하는 데 필요한 읽기 및 쓰기 권한이 작업 런타임 역할에 있는지 확인해야 합니다. 작업 런타임 역할을 구성하는 방법에 대해 자세히 알아보려면 Amazon EMR Serverless에 대한 작업 런타임 역할을 참조하세요. 필요한 모든 권한의 전체 목록은 GitHub의 spark-sql-kinesis-connector
Apache Kafka 커넥터
Spark의 구조화된 스트리밍에 대한 Apache Kafka 커넥터는 Spark 커뮤니티의 오픈 소스 커넥터이며, Maven 리포지토리에서 사용할 수 있습니다. 이 커넥터를 사용하면 Spark의 구조화된 스트리밍 애플리케이션이 자체 관리형 Apache Kafka 및 Amazon Managed Streaming for Apache Kafka에서 데이터를 읽고 쓸 수 있습니다. 커넥터에 대한 자세한 내용은 Apache Spark 설명서의 Structured Streaming + Kafka Integration Guide
다음 예제에서는 작업 실행 요청에 Kafka 커넥터를 포함하는 방법을 보여줍니다.
aws emr-serverless start-job-run \ --application-id
<APPLICATION_ID>
\ --execution-role-arn<JOB_EXECUTION_ROLE>
\ --mode 'STREAMING' \ --job-driver '{ "sparkSubmit": { "entryPoint": "s3://<Kafka-streaming-script>
", "entryPointArguments": ["s3://<DOC-EXAMPLE-BUCKET-OUTPUT>
/output"], "sparkSubmitParameters": "--conf spark.executor.cores=4 --conf spark.executor.memory=16g --conf spark.driver.cores=4 --conf spark.driver.memory=16g --conf spark.executor.instances=3 --packages org.apache.spark:spark-sql-kafka-0-10_2.12:<KAFKA_CONNECTOR_VERSION>
" } }'
Apache Kafka 커넥터 버전은 EMR Serverless 릴리스 버전 및 해당 Spark 버전에 따라 달라집니다. 올바른 Kafka 버전을 찾으려면 Structured Streaming + Kafka Integration Guide
Amazon Managed Streaming for Apache Kafka를 IAM 인증과 함께 사용하려면 Kafka 커넥터가 IAM을 사용하여 Amazon MSK에 연결되도록 다른 종속 항목을 포함해야 합니다. 자세한 내용은 GitHub의 aws-msk-iam-auth repository
aws emr-serverless start-job-run \ --application-id
<APPLICATION_ID>
\ --execution-role-arn<JOB_EXECUTION_ROLE>
\ --mode 'STREAMING' \ --job-driver '{ "sparkSubmit": { "entryPoint": "s3://<Kafka-streaming-script>
", "entryPointArguments": ["s3://<DOC-EXAMPLE-BUCKET-OUTPUT>
/output"], "sparkSubmitParameters": "--conf spark.executor.cores=4 --conf spark.executor.memory=16g --conf spark.driver.cores=4 --conf spark.driver.memory=16g --conf spark.executor.instances=3 --packages org.apache.spark:spark-sql-kafka-0-10_2.12:<KAFKA_CONNECTOR_VERSION>
,software.amazon.msk:aws-msk-iam-auth:<MSK_IAM_LIB_VERSION>
" } }'
Amazon MSK의 Kafka 커넥터 및 IAM 인증 라이브러리를 사용하려면 VPC 액세스를 통해 EMR Serverless 애플리케이션을 구성해야 합니다. 서브넷에는 인터넷 액세스 권한이 있어야 하며, NAT Gateway를 사용하여 Maven 종속 항목에 액세스해야 합니다. 자세한 내용은 VPC 액세스 구성을 참조하세요. Kafka 클러스터에 액세스하려면 서브넷에 네트워크 연결이 있어야 합니다. 이는 Kafka 클러스터가 자체 관리형인지 여부에 상관없이 Amazon Managed Streaming for Apache Kafka를 사용하는 경우에도 적용됩니다.