Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Detalhes de aplicações do Spark com versões anteriores da AMI do Amazon EMR - Amazon EMR

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á.

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á.

Detalhes de aplicações do Spark com versões anteriores da AMI do Amazon EMR

Usar o Spark interativamente ou no modo em lote

O Amazon EMR permite a execução de aplicações do Spark em dois modos:

  • Interativo

  • Lote

Ao iniciar um cluster de longa execução usando o console ou o AWS CLI, você pode se conectar usando SSH ao nó principal como usuário do Hadoop e usar o shell do Spark para desenvolver e executar seus aplicativos Spark de forma interativa. Usar o Spark interativamente permite criar protótipos ou testar aplicativos Spark com mais facilidade do que em um ambiente em lote. Depois de revisar com sucesso a aplicação do Spark no modo interativo, você pode colocar a aplicação do JAR ou o programa do Python do sistema de arquivos local no nó principal do cluster do Amazon S3. Em seguida, você pode enviar o aplicativo como um fluxo de trabalho em lote.

No modo em lote, carregue o script do Spark no Amazon S3 ou no sistema de arquivos do nó principal local e, em seguida, envie o trabalho ao cluster como uma etapa. As etapas do Spark podem ser enviadas a um cluster de longa execução ou a um cluster transitório.

Criar um cluster com o Spark instalado

Para executar um cluster com o Spark instalado usando o console
  1. Navegue até o novo console do Amazon EMR e selecione Alternar para o console antigo na navegação lateral. Para obter mais informações sobre o que esperar ao alternar para o console antigo, consulte Usar o console antigo.

  2. Selecione Criar cluster.

  3. Para Software Configuration (Configuração do software), escolha a versão da AMI de que você precisa.

  4. Para Applications to be installed (Aplicativos a serem instalados), escolha Spark na lista e depois escolha Configure and add (Configurar e adicionar).

  5. Adicione argumentos para alterar a configuração do Spark conforme desejado. Para obter mais informações, consulte Configurar o Spark. Escolha Adicionar.

  6. Selecione outras opções conforme necessário e escolha Create cluster (Criar cluster).

O seguinte exemplo mostra como criar um cluster com o Spark usando Java:

AmazonElasticMapReduceClient emr = new AmazonElasticMapReduceClient(credentials); SupportedProductConfig sparkConfig = new SupportedProductConfig() .withName("Spark"); RunJobFlowRequest request = new RunJobFlowRequest() .withName("Spark Cluster") .withAmiVersion("3.11.0") .withNewSupportedProducts(sparkConfig) .withInstances(new JobFlowInstancesConfig() .withEc2KeyName("myKeyName") .withInstanceCount(1) .withKeepJobFlowAliveWhenNoSteps(true) .withMasterInstanceType("m3.xlarge") .withSlaveInstanceType("m3.xlarge") ); RunJobFlowResult result = emr.runJobFlow(request);

Configurar o Spark

Você configura o Spark ao criar um cluster executando a ação bootstrap localizada no awslabs/emr-bootstrap-actions/sparkrepositório no Github. Para saber quais argumentos a ação de bootstrap aceita, consulte o arquivo LEIAME nesse repositório. A ação de bootstrap configura propriedades no arquivo $SPARK_CONF_DIR/spark-defaults.conf. Para obter mais informações sobre configurações, consulte o tópico Configuração do Spark na documentação do Spark. Você pode substituir "latest" (mais recente) na URL a seguir pelo número da versão do Spark que você está instalando, por exemplo, 2.2.0 http://spark.apache.org/docs/latest/configuration.html.

Você também pode configurar o Spark dinamicamente no momento do envio de cada aplicativo. Uma configuração para maximizar automaticamente a alocação de recursos para um executor está disponível usando o arquivo de configuração spark. Para obter mais informações, consulte Substituir as definições de configuração padrão do Spark.

Alterar as configurações padrão do Spark

O seguinte exemplo mostra como criar um cluster com o spark.executor.memory definido como 2G usando a AWS CLI.

nota

Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados ​​em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).

aws emr create-cluster --name "Spark cluster" --ami-version 3.11.0 \ --applications Name=Spark, Args=[-d,spark.executor.memory=2G] --ec2-attributes KeyName=myKey \ --instance-type m3.xlarge --instance-count 3 --use-default-roles

Enviar trabalhos para o Spark

Para enviar trabalhos a um cluster, use uma etapa para executar o script spark-submit no seu cluster do EMR. Adicione a etapa usando o addJobFlowSteps método em AmazonElasticMapReduceClient:

AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); AmazonElasticMapReduceClient emr = new AmazonElasticMapReduceClient(credentials); StepFactory stepFactory = new StepFactory(); AddJobFlowStepsRequest req = new AddJobFlowStepsRequest(); req.withJobFlowId("j-1K48XXXXXXHCB"); List<StepConfig> stepConfigs = new ArrayList<StepConfig>(); StepConfig sparkStep = new StepConfig() .withName("Spark Step") .withActionOnFailure("CONTINUE") .withHadoopJarStep(stepFactory.newScriptRunnerStep("/home/hadoop/spark/bin/spark-submit","--class","org.apache.spark.examples.SparkPi","/home/hadoop/spark/lib/spark-examples-1.3.1-hadoop2.4.0.jar","10")); stepConfigs.add(sparkStep); req.withSteps(stepConfigs); AddJobFlowStepsResult result = emr.addJobFlowSteps(req);

Substituir as definições de configuração padrão do Spark

Você pode querer substituir valores de configuração padrão do Spark para cada aplicativo. Você pode fazer isso ao enviar aplicativos usando uma etapa, que transmite essencialmente opções para spark-submit. Por exemplo, você pode querer alterar a memória alocada para um processo de executor modificando spark.executor.memory. Você pode fornecer ao switch --executor-memory um argumento semelhante ao seguinte:

/home/hadoop/spark/bin/spark-submit --executor-memory 1g --class org.apache.spark.examples.SparkPi /home/hadoop/spark/lib/spark-examples*.jar 10

Da mesma forma, você pode ajustar --executor-cores e --driver-memory. Em uma etapa, você forneceria os seguintes argumentos para a etapa:

--executor-memory 1g --class org.apache.spark.examples.SparkPi /home/hadoop/spark/lib/spark-examples*.jar 10

Você também pode ajustar as configurações que não possam não ter uma opção interna usando --conf. Para obter mais informações sobre outras configurações que são ajustáveis, consulte o tópico Dynamically loading Spark properties na documentação do Apache Spark.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.