Usando sólo un mapeador (una secuencia de comandos de Python) y sin reductor, ¿cómo puedo sacar un archivo separado con la clave como el nombre del archivo, para cada línea de salida, en lugar de tener largas filas de salida ?Generación de archivos de salida independiente en Hadoop Transmisión
Respuesta
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.
¿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: -/
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.
- 1. Transmisión de datos y Hadoop? (no Hadoop Streaming)
- 2. ¿Cómo sugeriría realizar "Join" con la transmisión de Hadoop?
- 3. ¿Cómo controlo el nombre y el contenido de los archivos de salida de un trabajo de transmisión de Hadoop?
- 4. Hadoop mapreduce la transmisión desde HBase
- 5. Salida intermedia de Hadoop MapReduce
- 6. Encadenando múltiples tareas de mapreduce en la transmisión de Hadoop
- 7. Rieles: transmisión de salida en tiempo real en formato zip.
- 8. Secuencia de archivos en Hadoop
- 9. Generación de GUID independiente de la plataforma en C++?
- 10. Fallo en la tarea de transmisión de Hadoop: salida del proceso de tarea con un estado distinto de cero de
- 11. Impresión en Adobe AIR - Generación de PDF independiente
- 12. ¿Cómo puedo configurar el tamaño de bloque de los archivos de salida producidos por un trabajo de Hadoop Streaming?
- 13. Archivos comprimidos Hadoop gzip
- 14. Grep en varios archivos en el sistema de archivos Hadoop
- 15. Generación de salida HTML del criterio
- 16. Ejecución de una aplicación Hadoop independiente en múltiples núcleos de CPU
- 17. cómo dar un nombre personalizado a los archivos de salida de hadoop
- 18. Cómo automatizar la generación de salida HTML en Enterprise Architect
- 19. Hadoop MapReduce - un archivo de salida para cada entrada
- 20. ¿Cómo puedo incluir un paquete de Python con el trabajo de transmisión de Hadoop?
- 21. Hadoop MapReduce: ¿es posible definir dos mapeadores y reductores en una clase de trabajo de hadoop?
- 22. ¿La plataforma de archivos objeto es independiente?
- 23. Transmisión de archivos MP3 desde Amazon S3
- 24. archivos nginx carga de transmisión con proxy_pass
- 25. Transmisión de salida de texto para acción prolongada?
- 26. Obtener el nombre del archivo de entrada en el programa hadoop de transmisión
- 27. ¿Utilidad de generación de archivos simples?
- 28. ejecutar un trabajo Hadoop sin archivo de salida
- 29. MultipleOutputFormat en hadoop
- 30. ¿Moviendo archivos en Hadoop usando la API de Java?
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? –
Hacer esto es malo. Entra en conflicto con las tareas de reintentos y le garantiza la necesidad de cuidar su trabajo. – nkadwa