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
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
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
Abra la consola Amazon EMR en https://console.aws.amazon.com /emr.
-
En la Cluster List (Lista de clústeres), seleccione el nombre del clúster.
-
Desplácese hasta la sección Steps (Pasos) y amplíela; a continuación, elija Add step (Añadir paso).
-
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).
-
-
Elija Agregar. El paso aparece en la consola con el estado Pending (Pendiente).
-
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
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 par de EC2 claves. 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-labelemr-7.7.0
--applications Name=Hue
Name=Hive
Name=Pig
--use-default-roles \ --ec2-attributes KeyName=myKey
--instance-typem5.xlarge
--instance-count3
\ --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 (\) 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 anteriormente el rol de servicio Amazon EMR y el perfil de EC2 instancia predeterminados, escriba aws
emr create-default-roles
para crearlos antes de escribir elcreate-cluster
subcomando.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