2009-10-26 10 views

Respuesta

1

Puede escribir en un archivo de texto en el sistema de archivos local usando las funciones de archivos de Python o si desea usar HDFS use el Thrift API.

+0

Cómo es múltiple mapeadores escrito al mismo archivo al mismo tiempo se maneja, al escribir en el sistema de archivos local o para los hdfs? –

+0

Hacer esto es malo. Entra en conflicto con las tareas de reintentos y le garantiza la necesidad de cuidar su trabajo. – nkadwa

1

¿Es posible reemplazar el outputFormatClass, cuando se utiliza el streaming? En una implementación de Java nativa podría ampliar la clase MultipleTextOutputFormat y modificar el método que da nombre al archivo de salida. A continuación, defina su aplicación como nueva OutputFormat con el método de setOutputFormat JobConf

debe verificar, si esto es posible en el streaming también. Yo no: -/

7

Las clases de formato de entrada y salida se pueden reemplazar mediante el uso de los parámetros de línea de comandos -inputformat y -outputformat.

Un ejemplo de cómo hacer esto se puede encontrar en el dumbo project, que es un marco de python para escribir trabajos de transmisión. Tiene una función para escribir en varios archivos, e internamente reemplaza el formato de salida con una clase de su proyecto hermano, feathers - fm.last.feathers.output.MultipleTextFiles.

El reductor necesita emitir una tupla como clave, siendo el primer componente de la tupla la ruta al directorio donde deben escribirse los archivos con los pares clave/valor. Todavía puede haber varios archivos, eso depende de la cantidad de reductores y la aplicación.

recomiendo mirar en Dumbo, tiene muchas características que hacen que sea más fácil escribir en un mapa/Reducir los programas de Hadoop en Python.

Cuestiones relacionadas