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 o 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 trabalhos do Apache Spark para eliminar o provisionamento de disco local e reduzir os custos de processamento de dados, além de evitar falhas de trabalho causadas por restrições de capacidade de disco. O armazenamento sem servidor gerencia automaticamente as operações de reprodução aleatória, 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 é escalado automaticamente com base nas demandas da carga de trabalho e permite que o Spark libere funcionários da computação imediatamente quando ociosos, reduzindo os custos de computação.
Benefícios principais
O armazenamento sem servidor para EMR Serverless oferece os seguintes benefícios.
-
Armazenamento com configuração zero — 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 de dados intermediárias sem planejamento de capacidade.
-
Evita falhas de trabalho por meio do escalonamento automático — A capacidade de armazenamento é dimensionada automaticamente com base na demanda da carga de trabalho, evitando falhas de 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 trabalhadores imediatamente quando estão ociosos, em vez de retê-los para preservar dados intermediários em discos locais. Isso permite uma expansão horizontal e 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 em nível de trabalho — Todos os dados intermediários são criptografados em trânsito e em repouso com isolamento estrito em nível de trabalho.
-
Suporte de controle de acesso refinado — O armazenamento sem servidor oferece suporte ao controle de acesso refinado por meio da integração com o AWS Lake Formation.
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 ativado definindo a propriedade spark como true na classificação spark-defaults.
spark.aws.serverlessStorage.enabledaws 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. Armazenamento sem servidor para EMR O Serverless manipula automaticamente a operação intermediária de dados, como o shuffle, para 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 não estiver habilitado 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 — Cada trabalho pode ler e gravar até um total de 200 GB de dados intermediários por execução do trabalho. Os trabalhos que excederem esse limite 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 tempos 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.
-
Capacidade pré-inicializada — os trabalhadores com capacidade pré-inicializada não oferecem suporte ao armazenamento sem servidor. Quando você configura a capacidade pré-inicializada, ela só será utilizada por trabalhos que desabilitem explicitamente o armazenamento sem servidor no nível do trabalho. As tarefas com armazenamento sem servidor habilitado 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 para trabalhadores com 1 ou 2 v. CPUs
Suportado Regiões da AWS
O EMR Serverless oferece suporte ao armazenamento sem servidor nas seguintes regiões:
-
Leste dos EUA (N. da Virgínia)
-
Oeste dos EUA (Oregon)
-
Europa (Irlanda)