

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Enviar un paso de streaming
<a name="CLI_CreateStreaming"></a>

En esta sección se describen los conceptos básicos de enviar un paso de streaming a un clúster. Una aplicación de streaming lee entradas desde la entrada estándar y, a continuación, ejecuta un script o ejecutable (denominado asignador) en contraste con cada entrada. El resultado de cada una de las entradas se guarda a nivel local, normalmente en una partición de Hadoop Distributed File System (HDFS). Después de que el mapeador procese todas las entradas, un segundo script o ejecutable (denominado reductor) procesa los resultados del mapeador. Los resultados del reductor se envían a la salida estándar. Puede encadenar conjuntamente una serie de pasos de streaming, donde la salida de un paso se convierte en la entrada de otro. 

Se puede hacer referencia al mapeador y al reductor como un archivo o puede proporcionar una clase Java. Puede implementar el mapeador y reductor en cualquiera de los lenguajes admitidos, incluidos Ruby, Perl, Python, PHP o Bash.

## Enviar un paso de streaming mediante la consola
<a name="emr-dev-create-stream-console"></a>

En este ejemplo se describe cómo utilizar la consola de Amazon EMR para enviar un paso de streaming a un clúster en ejecución.

**Para enviar un paso de streaming**

1. [Abra la consola Amazon EMR en https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr/)

1. En la **Cluster List (Lista de clústeres)**, seleccione el nombre del clúster.

1. Desplácese hasta la sección **Steps (Pasos)** y amplíela; a continuación, elija **Add step (Añadir paso)**.

1. En el cuadro de diálogo **Add Step (Añadir paso)**:
   + En **Step type (Tipo de paso)**, elija **Streaming program (Programa de streaming)**.
   + En **Name (Nombre)**, acepte el nombre predeterminado, Streaming program (Programa de streaming), o escriba un nombre nuevo.
   + En **Mapper (Mapeador)**, escriba o busque la ubicación de la clase de mapeador de Hadoop o del bucket de S3 donde reside el ejecutable del mapeador, por ejemplo, un programa de Python. El valor de la ruta debe tener el formato*BucketName*//. *path* *MapperExecutable*
   + En **Reducer (Reductor)**, escriba o busque la ubicación de la clase de reductor de Hadoop o de un bucket de S3 donde resida el ejecutable del reductor, por ejemplo, un programa de Python. El valor de la ruta debe tener el formato*BucketName*/*path*/*MapperExecutable*. Amazon EMR soporta la palabra clave especial *agregación*. Para obtener más información, vaya a la biblioteca Aggregate suministrada por Hadoop.
   + En **Input S3 location (Ubicación en S3 de la entrada)**, escriba o busque la ubicación de los datos de entrada. 
   + En **Ubicación en S3 de la salida**, escriba o busque el nombre del bucket de salida de Amazon S3.
   + En **Arguments (Argumentos)**, deje el campo en blanco.
   + En **Action on failure (Acción sobre el error)**, acepte la opción predeterminada, **Continue (Continuar)**.

1. Elija **Añadir**. El paso aparece en la consola con el estado Pending (Pendiente). 

1. El estado del paso cambia de Pending (Pendiente) a Running (En ejecución) y a Completed (Completado) a medida que se ejecuta. Para actualizar el estado, elija el icono **Refresh (Actualizar)** situado encima de la columna Actions (Acciones). 

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

Estos ejemplos muestran cómo utilizar el paso AWS CLI para crear un clúster y enviar un paso de streaming. 

**Para crear un clúster y enviar un paso de transmisión mediante el AWS CLI**
+ Para crear un clúster y enviar un paso de transmisión mediante el AWS CLI, escriba el siguiente comando y *myKey* sustitúyalo por el nombre del key pair de EC2. Tenga en cuenta que su argumento para `--files` debe ser la ruta de Amazon S3 a la ubicación del script y los argumentos para `-mapper` y `-reducer` deben ser los nombres de los respectivos archivos 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**  
Se incluyen caracteres de continuación de línea de Linux (\$1) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).

  Cuando especifica el recuento de instancias sin utilizar el parámetro `--instance-groups`, se lanza un nodo principal único y el resto de las instancias se lanzan como nodos secundarios. Todos los nodos utilizan el tipo de instancia especificado en el comando.
**nota**  
Si no ha creado con anterioridad el rol de servicio de Amazon EMR predeterminado y el perfil de instancia de EC2, escriba aws `emr create-default-roles` para crearlos antes de escribir el subcomando `create-cluster`.

  Para obtener más información sobre el uso de los comandos de Amazon EMR en AWS CLI, consulte. [https://docs.aws.amazon.com/cli/latest/reference/emr](https://docs.aws.amazon.com/cli/latest/reference/emr)