Parámetros de ejecución

El streaming Map/Reduce se ejecuta mediante el comando ' mapreduce jar '. Al ejecutar, también debe especificar la ruta de acceso al tarro de streaming Map/Reduce. Cada invocación de streaming debe tener al menos un mapper job especificado. A continuación se muestra la sintaxis del comando mapreducestreaming.jar ":
mapreduce jar /nz/export/ae/products/netezza/mapreduce/current/mapreducestreaming.
jar
-db <db>
-input <table name> <key_column> <value column>
-output <output_table> <key_column> <value_column>
-mapper <mapper_cmd>
-mapper_out_key_size <size>
-mapper_out_value_size <size>
-reducer <reducer_cmd>
-reducer_out_key_size <size>
-reducer_out_value_size <size>
-file <file>
La siguiente tabla describe los parámetros necesarios.
Tabla 1. Parámetros necesarios para el comando mapreduce jar
Parámetro Descripción
db Especifica el nombre de la base de datos que contiene los datos de entrada.
Entrada<table_name><key_column><value_column> Especifica el nombre de la tabla que contiene los datos de entrada y los nombres de las columnas donde se almacenan los datos clave y de valor.
Salida<table_name><key_column><value_column> Especifica el nombre de la tabla donde se almacenarán los datos de salida, seguido de los nombres de las columnas clave y valor.
mapeador Ejecuta el paso de mapa en la SPU.
mapper_out_key_size Especifica el tamaño (número de caracteres) de la columna de clave de salida creada tras el paso de asignación.
mapper_output_value_size Especifica el tamaño (número de caracteres) de la columna de valores de salida creada tras el paso de asignación.
Los pasos de combinar y reducir son opcionales. Pueden definirse especificando los siguientes parámetros.
Tabla 2. Parámetros para combinar y reducir opcionalmente
Parámetro Descripción
Combinador Ejecuta el paso de combinar en la SPU.

combiner_out_key_size

Especifica el tamaño (número de caracteres) de la columna clave de salida creada tras el paso de combinación.
combiner_output_value_size Especifica el tamaño (número de caracteres) de la columna de valores de salida creada tras el paso de combinación. reducer Ejecuta el paso reduce en la SPU.
reducer_out_key_size Especifica el tamaño (número de caracteres) de la columna clave de salida creada tras el paso de reducción.
reducer_output_value_size Especifica el tamaño (número de caracteres) de la columna de valores de salida creada tras el paso de reducción.

Debe utilizar el parámetro file (especificado por la sintaxis del comando streaming)para especificar cada archivo sobre el que desea ejecutar comandos mapper/combiner/reducer. Se permiten múltiples parámetros de archivo. Todos los archivos se copian en un directorio temporal al que pueden acceder las SPU.

Dentro del programa de streaming, una línea de entrada y salida consta de entradas de clave y valor separadas por un carácter de tabulación. Sin embargo, puede definir otros separadores que se utilizarán para distinguir la clave del valor especificando los siguientes parámetros.

Tabla 3. Separadores alternativos
   
Separadores de entrada

mapper_output_separator

Carácter de tabulación por defecto, o cualquier símbolo elegido.

separador_salida_combinador

reductor_separador_de_salida

Separadores de salida

mapper_output_separator

Carácter de tabulación por defecto, o cualquier símbolo elegido.

separador_salida_combinador

reductor_separador_de_salida

Los parámetros al mapeador, combinador o reductor se pasan utilizando variables de entorno en las SPU. Para pasar parámetros, utilice la opción cmdenv. Por ejemplo, introduzca lo siguiente para que la variable de entorno "NOMBRE" de la EPD contenga el valor ADAM:

-cmdenv "NOMBRE=ADAM"

La variable puede leerse posteriormente en un programa o script con comandos específicos del lenguaje de programación utilizado.

Nota: Es posible mezclar la funcionalidad de streaming con las clases mapper/reducer/combiner estándar de Java. En lugar de definir parámetros mapper/combiner/reducer, se especifican parámetros mapperClass/combinerClass/reducerClass con los nombres de clase apropiados. Todas las clases java deben incluirse en archivos jar y pasarse al ejecutable mapreduce_streaming a través del parámetro libJar.