Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Unterstützte Streaming-Konnektoren
Streaming-Konnektoren erleichtern das Lesen von Daten aus einer Streaming-Quelle und können auch Daten in eine Streaming-Senke schreiben.
Die folgenden Streaming-Konnektoren werden unterstützt:
Amazon Kinesis Data Streams Streams-Konnektor
Der Amazon Kinesis Data Streams-Connector für Apache Spark ermöglicht die Erstellung von Streaming-Anwendungen und -Pipelines, die Daten von Amazon Kinesis Data Streams nutzen und Daten in Amazon Kinesis Data Streams schreiben. Der Connector unterstützt einen erhöhten Fan-Out-Verbrauch mit einer speziellen Lesedurchsatzrate von bis zu 2 MB/Sekunde pro Shard. Standardmäßig enthalten Amazon EMR Serverless 7.1.0 und höher den Connector, sodass Sie keine zusätzlichen Pakete erstellen oder herunterladen müssen. Weitere Informationen zum Connector finden Sie auf der spark-sql-kinesis-connectorSeite
Im Folgenden finden Sie ein Beispiel dafür, wie Sie eine Jobausführung mit der Kinesis Data Streams Streams-Konnektorabhängigkeit starten.
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"
}
}'
Um eine Verbindung zu Kinesis Data Streams herzustellen, müssen Sie die EMR Serverless-Anwendung mit VPC Zugriff konfigurieren und einen VPC Endpunkt verwenden, um privaten Zugriff zu ermöglichen. Oder Sie müssen ein NAT Gateway verwenden, um öffentlichen Zugriff zu erhalten. Weitere Informationen finden Sie unter Zugriff konfigurieren. VPC Sie müssen außerdem sicherstellen, dass Ihre Job-Runtime-Rolle über die erforderlichen Lese- und Schreibberechtigungen für den Zugriff auf die erforderlichen Datenströme verfügt. Weitere Informationen zur Konfiguration einer Job-Runtime-Rolle finden Sie unter Job-Runtime-Rollen für Amazon EMR Serverless. Eine vollständige Liste aller erforderlichen Berechtigungen finden Sie auf GitHub der spark-sql-kinesis-connector Seite
Apache Kafka-Konnektor
Der Apache Kafka-Konnektor für strukturiertes Spark-Streaming ist ein Open-Source-Konnektor der Spark-Community und in einem Maven-Repository verfügbar. Dieser Konnektor ermöglicht es strukturierten Spark-Streaming-Anwendungen, Daten aus selbstverwaltetem Apache Kafka und Amazon Managed Managed Streaming for Apache Kafka Apache Kafka zu lesen und Daten in diese zu schreiben. Weitere Informationen über den Konnektor finden Sie im Structured Streaming + Kafka Integration Guide
Das folgende Beispiel zeigt, wie Sie den Kafka-Connector in Ihre Job-Run-Anforderung aufnehmen können.
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>
"
}
}'
Die Version des Apache Kafka-Connectors hängt von Ihrer EMR Serverless-Release-Version und der entsprechenden Spark-Version ab. Die richtige Kafka-Version finden Sie im Structured Streaming + Kafka
Um Amazon Managed Streaming for Apache Kafka mit IAM Authentifizierung zu verwenden, müssen Sie eine weitere Abhängigkeit angeben, mit der der Kafka-Connector eine Verbindung zu Amazon MSK herstellen kann. IAM Weitere Informationen finden Sie im 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>
"
}
}'
Um den Kafka-Connector und die IAM Authentifizierungsbibliothek von Amazon verwenden zu können, müssen MSK Sie die EMR Serverless-Anwendung mit VPC Zugriff konfigurieren. Ihre Subnetze müssen über einen Internetzugang verfügen und ein NAT Gateway verwenden, um auf die Maven-Abhängigkeiten zuzugreifen. Weitere Informationen finden Sie unter Zugriff konfigurieren VPC. Die Subnetze müssen über Netzwerkkonnektivität verfügen, um auf den Kafka-Cluster zugreifen zu können. Dies gilt unabhängig davon, ob Ihr Kafka-Cluster selbst verwaltet wird oder ob Sie Amazon Managed Managed Streaming for Apache Kafka verwenden.