As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usando armazenamento sem servidor para o Amazon EMR Serverless
Com as versões 7.12 e superiores do Amazon EMR, use armazenamento sem servidor ao executar tarefas do Apache Spark para eliminar o provisionamento de disco local e reduzir os custos de processamento de dados, além de evitar falhas nas tarefas devido às restrições de capacidade do disco. O armazenamento sem servidor gerencia automaticamente as operações de embaralhamento, vazamento de disco e armazenamento em cache de disco para suas tarefas sem exigir configuração de capacidade e armazena dados intermediários sem nenhum custo. O Amazon EMR Serverless armazena dados intermediários em um armazenamento sem servidor totalmente gerenciado que se expande automaticamente com base nas demandas da carga de trabalho e permite que o Spark libere funcionários de computação imediatamente quando ociosos, reduzindo os custos de computação.
Benefícios principais
O armazenamento sem servidor para o EMR Serverless oferece os seguintes benefícios.
-
Zero-configuration armazenamento — o armazenamento sem servidor elimina a necessidade de configurar o tipo e o tamanho do disco local para cada aplicativo ou tarefa. O EMR Serverless gerencia automaticamente as operações intermediárias de dados sem planejamento de capacidade.
-
Evita falhas no trabalho por meio do escalonamento automático — A capacidade de armazenamento é dimensionada automaticamente com base na demanda da carga de trabalho, evitando falhas no trabalho devido à capacidade insuficiente do disco.
-
Custos reduzidos de processamento de dados — o armazenamento sem servidor reduz os custos de processamento por meio de dois mecanismos. Primeiro, o armazenamento intermediário de dados é fornecido sem nenhum custo — você paga somente pelos recursos de computação e memória. Em segundo lugar, o armazenamento desacoplado com a alocação dinâmica de recursos do Spark permite que o Spark libere funcionários imediatamente quando ociosos, em vez de retê-los para preservar os dados intermediários em discos locais. Isso permite uma expansão e uma ampliação mais rápidas por estágio do Spark, reduzindo os custos de computação para trabalhos em que os estágios posteriores precisam de menos trabalhadores do que os estágios iniciais.
-
Armazenamento criptografado com isolamento no nível do trabalho — todos os dados intermediários são criptografados em trânsito e em repouso com isolamento estrito no nível do trabalho.
-
Fine-grained suporte ao controle de acesso — o armazenamento sem servidor oferece suporte ao controle de acesso refinado por meio da integração com o Lake Formation. AWS
Introdução
Veja as etapas a seguir para usar o armazenamento sem servidor para o EMR Serverless em seus fluxos de trabalho do Spark.
-
Crie um aplicativo EMR Serverless
Crie um aplicativo EMR Serverless versão 7.12 (ou posterior) com armazenamento sem servidor habilitado definindo a propriedade
spark.aws.serverlessStorage.enabledspark como true na classificação spark-defaults.aws emr-serverless create-application \ --type "SPARK" \ --namemy-application\ --release-label emr-7.12.0 \ --runtime-configuration '[{ "classification": "spark-defaults", "properties": { "spark.aws.serverlessStorage.enabled": "true" } }]' \ --region<AWS_REGION> -
Comece um trabalho no Spark
Inicie a execução de um trabalho em seu aplicativo. O armazenamento sem servidor para o EMR Serverless gerencia automaticamente a operação intermediária de dados, como a reprodução aleatória de seu trabalho.
aws emr-serverless start-job-run \ --application-id<application-id>\ --execution-role-arn<job-role-arn>\ --job-driver '{ "sparkSubmit": { "entryPoint": "s3://<bucket>/script.py", "sparkSubmitParameters": "--conf spark.executor.cores=4 --conf spark.executor.memory=20g --conf spark.driver.cores=4 --conf spark.driver.memory=8g --conf spark.executor.instances=10" } }'Você também pode habilitar o armazenamento sem servidor para o EMR Serverless no nível do trabalho, mesmo quando ele não está ativado no nível do aplicativo. Isso iniciará nós de trabalho habilitados com armazenamento sem servidor para processar seus trabalhos. Você também pode desativar o armazenamento sem servidor para um trabalho específico definindo a mesma propriedade
spark.aws.serverlessStorage.enableddo Spark como false.# Turn on serverless storage for EMR serverless for a specific job aws emr-serverless start-job-run \ --application-id<application-id>\ --execution-role-arn<job-role-arn>\ --job-driver '{ "sparkSubmit": { "entryPoint": "/usr/lib/spark/examples/jars/spark-examples.jar", "entryPointArguments": ["1"], "sparkSubmitParameters": "--class org.apache.spark.examples.SparkPi --conf spark.aws.serverlessStorage.enabled": "true" } }'nota
Para continuar usando o provisionamento de disco local tradicional, omita a
spark.aws.serverlessStorage.enabledconfiguração ou defina-a como falsa.
Considerações e limitações
-
Versão de lançamento — O armazenamento sem servidor é compatível com a versão 7.12 e posterior do Amazon EMR.
-
Limites de volume de dados — Com o emr-7.12, o emr-7.13 e o emr-spark-8.0, cada trabalho pode ler e gravar até 200 GB de dados intermediários por trabalho executado. Para o emr-7.14 e versões posteriores, incluindo o emr-spark-8.1, esse limite aumenta para 1 TB, exceto nas regiões indicadas com um limite de 200 GB em Compatível abaixo. Regiões da AWS Os trabalhos que excederem o limite aplicável falharão com uma mensagem de erro indicando que o limite de armazenamento sem servidor foi atingido.
-
Tempo limite de execução do trabalho — o armazenamento sem servidor oferece suporte a trabalhos com tempo limite de execução de até 24 horas. Os trabalhos configurados para tempos limite de execução mais longos falharão com uma mensagem de erro.
-
Pre-initialized capacidade — os trabalhadores Pre-initialized de capacidade não oferecem suporte ao armazenamento sem servidor. Quando você configura a capacidade pré-inicializada, ela só será utilizada por trabalhos que desativam explicitamente o armazenamento sem servidor no nível do trabalho. Os trabalhos com armazenamento sem servidor ativado sempre provisionarão novos trabalhadores sob demanda e não usarão nenhuma capacidade pré-inicializada, independentemente da configuração no nível do aplicativo.
-
Tipos de carga de trabalho — o armazenamento sem servidor não é compatível com trabalhos interativos e de streaming.
-
Configuração do trabalhador — o armazenamento sem servidor não é suportado por trabalhadores com 1 ou 2 vCPUs.
Compatível Regiões da AWS
O EMR Serverless oferece suporte ao armazenamento sem servidor nas seguintes regiões:
-
Leste dos EUA (Norte da Virgínia)
-
Leste dos EUA (Ohio)
-
Oeste dos EUA (N. da Califórnia)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Hong Kong)
-
Ásia-Pacífico (Jacarta)
-
Ásia-Pacífico (Mumbai)
-
Ásia-Pacífico (Osaka)
-
Ásia-Pacífico (Seul)
-
Ásia-Pacífico (Singapura)
-
Ásia-Pacífico (Sydney)
-
Ásia-Pacífico (Tóquio)
-
Canadá (Central)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
Europa (Espanha)
-
Europa (Estocolmo)
-
América do Sul (São Paulo)
-
África (Cidade do Cabo) — limite de 200 GB
-
Ásia-Pacífico (Melbourne) — limite de 200 GB
-
Oeste do Canadá (Calgary) — limite de 200 GB
-
Europa (Londres) — limite de 200 GB
-
Europa (Milão) — limite de 200 GB
-
Europa (Paris) — limite de 200 GB
-
Europa (Zurique) — limite de 200 GB