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á.
Enviar uma etapa de JAR personalizado
Um JAR personalizado executa um programa Java compilado que você pode carregar no Amazon S3. Você deve compilar o programa com base na versão do Hadoop que você deseja iniciar e enviar uma etapa CUSTOM_JAR
ao cluster do Amazon EMR. Para obter mais informações sobre como compilar um arquivo JAR, consulte Criar binários usando o Amazon EMR.
Para obter mais informações sobre a criação de um MapReduce aplicativo Hadoop, consulte o MapReduce Tutorial
Esta seção aborda os conceitos básicos do envio de uma etapa de JAR personalizado no Amazon EMR. O envio de uma etapa de JAR personalizado permite a gravação de um script para processar dados usando a linguagem de programação Java.
Enviar uma etapa de JAR personalizado usando o console
Este exemplo descreve como usar o console do Amazon EMR para enviar uma etapa de JAR personalizado a um cluster em execução.
Enviar uma etapa de JAR personalizado usando o console
Abra o console do Amazon EMR em https://console.aws.amazon.com /emr.
-
Em Cluster List (Lista de clusters), selecione o nome do cluster.
-
Role até a seção Steps (Etapas) e expanda-a. Em seguida, escolha Add step (Adicionar etapa).
-
Na caixa de diálogo Add Step (Adicionar etapa):
-
Para Step type (Tipo de etapa), escolha Custom JAR (JAR personalizado).
-
Para Name (Nome), aceite o nome padrão (JAR Personalizado) ou digite um novo nome.
-
Para JAR S3 location (Localização do S3 JAR), digite a localização do seu arquivo JAR ou navegue até ela. A localização do JAR pode ser um caminho para o S3 ou uma classe java totalmente qualificada no caminho de classe.
-
Para Arguments (Argumentos), digite argumentos necessários como strings separadas por espaços ou deixe o campo em branco.
-
Para Action on failure (Ação na falha), aceite a opção padrão Continue (Continuar).
-
-
Escolha Adicionar. A etapa é exibida no console com o status Pendente.
-
O status da etapa muda de Pending (Pendente) para Running (Em execução) e depois para Completed (Concluído) conforme ela é executada. Para atualizar o status, escolha o ícone Refresh (Atualizar) acima da coluna Actions (Ações).
Iniciando um cluster e enviando uma etapa JAR personalizada com o AWS CLI
Para iniciar um cluster e enviar uma etapa JAR personalizada com o AWS CLI
Para iniciar um cluster e enviar uma etapa JAR personalizada com o AWS CLI, digite o create-cluster
subcomando com o --steps
parâmetro.
-
Para iniciar um cluster e enviar uma etapa JAR personalizada, digite o comando a seguir,
myKey
substitua pelo nome do seu EC2 key pair eamzn-s3-demo-bucket
substitua pelo nome do bucket.aws emr create-cluster --name "
Test cluster
" --release-labelemr-7.6.0
\ --applications Name=Hue
Name=Hive
Name=Pig
--use-default-roles \ --ec2-attributes KeyName=myKey
--instance-typem5.xlarge
--instance-count3
\ --steps Type=CUSTOM_JAR
,Name="Custom JAR Step
",ActionOnFailure=CONTINUE
,Jar=pathtojarfile
,Args=["pathtoinputdata
","pathtooutputbucket
","arg1
","arg2
"]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 (^).
Quando você especifica a contagem de instâncias sem usar o parâmetro
--instance-groups
, um único nó primário é iniciado e as instâncias restantes são iniciadas como nós centrais. Todos os nós usam o tipo de instância que você especifica no comando.nota
Se você ainda não criou a função de serviço e o perfil de EC2 instância padrão do Amazon EMR, digite
aws emr create-default-roles
para criá-los antes de digitar o subcomando.create-cluster
Para obter mais informações sobre o uso dos comandos do Amazon EMR no AWS CLI, consulte. https://docs.aws.amazon.com/cli/latest/reference/emr
Dependências de terceiros
Às vezes, pode ser necessário incluir no MapReduce classpath JARs para uso com seu programa. Existem duas opções para fazer isso:
-
Inclua o
--libjars s3://
nas opções da etapa para o procedimento em Iniciando um cluster e enviando uma etapa JAR personalizada com o AWS CLI.URI_to_JAR
-
Inicie o cluster com uma configuração
mapreduce.application.classpath
modificada emmapred-site.xml
. Use a classificação para a configuraçãomapred-site
. Para criar o cluster com a etapa usando AWS CLI, isso teria a seguinte aparência:aws emr create-cluster --release-label
emr-7.6.0
\ --applications Name=Hue
Name=Hive
Name=Pig
--use-default-roles \ --instance-type m5.xlarge --instance-count 2 --ec2-attributes KeyName=myKey
\ --steps Type=CUSTOM_JAR
,Name="Custom JAR Step
",ActionOnFailure=CONTINUE
,Jar=pathtojarfile
,Args=["pathtoinputdata
","pathtooutputbucket
","arg1
","arg2
"] \ --configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.jsonmyConfig.json
:[ { "Classification": "mapred-site", "Properties": { "mapreduce.application.classpath": "
path1
,path2
" } } ]A lista separada por vírgulas de caminhos deve ser acrescentada ao classpath da JVM de cada tarefa.