Conectores de streaming compatíveis - Amazon EMR

Conectores de streaming compatíveis

Os conectores de streaming facilitam a leitura de dados provenientes de uma fonte de streaming e podem gravar dados em um coletor de streaming.

Estes são os conectores de streaming compatíveis:

Conector do Amazon Kinesis Data Streams

O conector do Amazon Kinesis Data Streams para Apache Spark permite criar aplicações e pipelines de streaming que consomem dados e gravam dados no Amazon Kinesis Data Streams. O conector comporta um consumo aprimorado de fan-out com um throughput de leitura dedicado de até 2 MB/segundo por fragmento. Por padrão, o Amazon EMR Sem Servidor 7.1.0 e versões posteriores incluem o conector, então você não precisa criar ou baixar nenhum pacote adicional. Para obter mais informações sobre o conector, consulte a página spark-sql-kinesis-connector no GitHub.

Confira a seguir um exemplo de como iniciar a execução de um trabalho com a dependência do conector do 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" } }'

Para se conectar ao Kinesis Data Streams, configure a aplicação do EMR Sem Servidor com acesso à VPC e usar um endpoint da VPC para permitir acesso privado ou um gateway NAT para obter acesso público. Para obter mais informações, consulte Configurar o acesso à VPC. Também é necessário garantir que o perfil de runtime do trabalho tenha as permissões de leitura e gravação necessárias para acessar os fluxos de dados essenciais. Para saber mais sobre como configurar um perfil de runtime de trabalho, consulte Perfis de runtime do trabalho para o Amazon EMR Sem Servidor. Para obter uma lista completa de todas as permissões necessárias, consulte a página spark-sql-kinesis-connector no GitHub.

Conector do Apache Kafka

O conector do Apache Kafka para streaming estruturado do Spark é um conector de código aberto da comunidade Spark, disponível em um repositório Maven. Esse conector facilita que as aplicações de streaming estruturado do Spark leiam e gravem dados no Apache Kafka autogerenciado e no Amazon Managed Streaming para Apache Kafka. Para obter mais informações sobre o conector, consulte o Structured Streaming + Kafka Integration Guide na documentação do Apache Spark.

O exemplo a seguir demonstra como incluir o conector do Kafka na solicitação de execução de trabalho.

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>" } }'

A versão do conector do Apache Kafka depende da versão do EMR Sem Servidor e da versão correspondente do Spark. Para encontrar a versão correta do Kafka, consulte o Structured Streaming + Kafka Integration Guide.

Para usar o Amazon Managed Streaming para Apache Kafka com autenticação do IAM, inclua outra dependência para permitir que o conector do Kafka se conecte ao Amazon MSK com IAM. Para obter mais informações, consulte o Repositório aws-msk-iam-auth no GitHub. Também é necessário garantir que o perfil de runtime do trabalho tenha as permissões necessárias do IAM. O exemplo a seguir demonstra como usar o conector com autenticação do IAM.

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>" } }'

Para usar o conector do Kafka e a biblioteca de autenticação do IAM no Amazon MSK, configure a aplicação do EMR Sem Servidor com acesso à VPC. Suas sub-redes devem ter acesso à Internet e usar um gateway NAT para acessar as dependências do Maven. Para obter mais informações, consulte Configurar o acesso à VPC. As sub-redes devem ter conectividade de rede para acessar o cluster do Kafka. Isso é verdade independentemente de o cluster do Kafka ser autogerenciado ou de você usar o Amazon Managed Streaming para Apache Kafka.