

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 streaming
<a name="CLI_CreateStreaming"></a>

Esta seção aborda os conceitos básicos do envio de uma etapa de streaming para um cluster. Uma aplicação de streaming lê os dados de entrada de uma entrada padrão e, em seguida, executa um script ou executável (denominado mapeador) para cada entrada. Os resultados obtidos de cada entrada são salvos localmente, normalmente em uma partição do Hadoop Distributed File System (HDFS). Depois que todas as entradas são processadas pelo mapeador, um segundo script ou programa executável (chamado de reducer) processa os resultados do mapeador. Os resultados do reducer são enviados para a saída padrão. Você pode encadear uma série de etapas de streaming, em que a saída de uma etapa se torna a entrada de outra etapa. 

O mapeador e o reducer podem ser referenciados como arquivos ou você pode fornecer uma classe Java. Você pode implementar o mapeador e o reducer em qualquer uma das linguagens compatíveis, incluindo Ruby, Perl, Python, PHP ou Bash.

## Enviar uma etapa de streaming usando o console
<a name="emr-dev-create-stream-console"></a>

Este exemplo descreve como usar o console do Amazon EMR para enviar uma etapa de streaming para um cluster em execução.

**Enviar uma etapa de streaming**

1. [Abra o console do Amazon EMR em https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr/)

1. Em **Cluster List (Lista de clusters)**, selecione o nome do cluster.

1. Role até a seção **Steps (Etapas)** e expanda-a. Em seguida, escolha **Add step (Adicionar etapa)**.

1. Na caixa de diálogo **Add Step (Adicionar etapa)**:
   + Em **Step type (Tipo de etapa)**, escolha **Streaming program (Programa de streaming)**.
   + Em **Name (Nome)**, aceite o nome padrão (programa Streaming) ou digite um novo nome.
   + Em **Mapper**, digite ou navegue até o local da classe do mapeador no Hadoop ou de um bucket do S3, onde se encontra o executável do mapeador como, por exemplo um programa Python. O valor do caminho deve estar no formato*BucketName*/*path*/*MapperExecutable*.
   + Em **Reducer (Redutor)**, digite ou navegue até o local da classe do reducer no Hadoop ou de um bucket do S3 onde se encontra o executável do reducer, por exemplo um programa Python. O valor do caminho deve estar no formato*BucketName*/*path*/*MapperExecutable*. O Amazon EMR é compatível com a palavra-chave especial *aggregate*. Para obter mais informações, acesse a biblioteca Aggregate fornecida pelo Hadoop.
   + Em **Input S3 location (Localização do S3 de entrada)**, digite ou navegue até o local dos dados de entrada. 
   + Em **Local de saída do S3**, digite ou navegue até o nome do bucket de saída do Amazon S3.
   + Para **Arguments (Argumentos)**, deixe o campo em branco.
   + Para **Action on failure (Ação na falha)**, aceite a opção padrão **Continue (Continuar)**.

1. Escolha **Adicionar**. A etapa é exibida no console com o status Pendente. 

1. 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). 

## AWS CLI
<a name="emr-dev-create-stream-cli"></a>

Esses exemplos demonstram como usar o AWS CLI para criar um cluster e enviar uma etapa de streaming. 

**Para criar um cluster e enviar uma etapa de streaming usando o AWS CLI**
+ Para criar um cluster e enviar uma etapa de streaming usando o AWS CLI, digite o comando a seguir e *myKey* substitua pelo nome do seu par de chaves do EC2. Observe que o argumento para `--files` deve ser o caminho do Amazon S3 para o local do script e os argumentos para `-mapper` e `-reducer` devem ser os nomes dos respectivos arquivos de script.

  ```
  aws emr create-cluster --name "Test cluster" --release-label emr-7.12.0 --applications Name=Hue Name=Hive Name=Pig --use-default-roles \
  --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 \
  --steps Type=STREAMING,Name="Streaming Program",ActionOnFailure=CONTINUE,Args=[--files,pathtoscripts,-mapper,mapperscript,-reducer,reducerscript,aggregate,-input,pathtoinputdata,-output,pathtooutputbucket]
  ```
**nota**  
Os caracteres de continuação de linha do Linux (\$1) 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ó principal é executado, e as instâncias restantes são executadas como nós core. Todos os nós usam o tipo de instância especificado no comando.
**nota**  
Se você não tiver criado o perfil de serviço padrão do Amazon EMR e o perfil de instância do EC2, 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](https://docs.aws.amazon.com/cli/latest/reference/emr)