Como configurar o AWS EMR serverless com Python

Bruno Luiz Mendes
2 min readMay 1, 2023

--

Configurar o AWS EMR (Elastic MapReduce) serverless com Python é uma tarefa importante para os usuários da plataforma que desejam executar tarefas de processamento de dados de maneira mais escalável e eficiente. Neste artigo técnico, vamos explorar como é possível configurar o AWS EMR serverless com Python.

Introdução

O Amazon EMR (Elastic MapReduce) é um serviço gerenciado da AWS que permite processar grandes quantidades de dados usando o Apache Hadoop, Spark e outras ferramentas de Big Data. O EMR simplifica a configuração, execução e escalabilidade de clusters de processamento de dados em nuvem.

O EMR serverless é uma opção recente oferecida pela AWS que permite a execução de tarefas de processamento de dados sem a necessidade de provisionar, configurar e gerenciar um cluster. O EMR serverless é ideal para cargas de trabalho intermitentes ou com uso variável, pois oferece um modelo de precificação baseado no uso, sem custos mínimos ou compromissos a longo prazo.

Python é uma linguagem de programação amplamente utilizada para processamento de dados, análise de dados e machine learning. Neste artigo, vamos explorar como é possível configurar o EMR serverless com Python usando o SDK Boto3 da AWS.

Requisitos

Para configurar o EMR serverless com Python, é necessário atender aos seguintes requisitos:

  • Uma conta da AWS com permissões para acessar o EMR;
  • Python 3.9 ou superior instalado em seu sistema;
  • O SDK Boto3 da AWS instalado em seu sistema.

EMR serverless com Python

Para configurar o EMR serverless com Python, é necessário seguir os seguintes passos:

  1. Importar as bibliotecas necessárias:
import boto3
from botocore.config import Config

A biblioteca Boto3 é necessária para interagir com o EMR usando o Python. O parâmetro Config é necessário para configurar a região da AWS e a versão da API.

2. Configurar a conexão com a AWS:

aws_access_key_id = 'ACCESS_KEY_ID'
aws_secret_access_key = 'SECRET_ACCESS_KEY'
region_name = 'REGION_NAME'

config = Config(
region_name=region_name,
signature_version='v4',
retries={
'max_attempts': 10,
'mode': 'standard'
}
)

emr = boto3.client('emr',
aws_access_key_id=aws_access_key_id,
aws_secret_access_key=aws_secret_access_key,
config=config)

3. Configurar o job a ser executado:

job_name = 'JOB_NAME'
script_path = 's3://BUCKET_NAME/SCRIPT.py'
output_path = 's3://BUCKET_NAME/OUTPUT/'

job = {
'Name': job_name,
'LogUri': output_path + 'logs/',
'ReleaseLabel': 'emr-6.2.0',
'Instances': {
'InstanceGroups': [
{
'Name': 'Master nodes',
'Market': 'SPOT',
'InstanceRole': 'MASTER',
'Instance

Em suma, o MapReduce é uma técnica poderosa e amplamente utilizada para processamento de Big Data, oferecendo escalabilidade, tolerância a falhas, eficiência e flexibilidade para processar grandes volumes de dados em paralelo e reduzir o tempo de processamento total.

--

--

No responses yet