Estoy trabajando en el uso de Hadoop Map Reducir para investigar en los volcados de datos de wikipedia (comprimidos en formato bz2). Como estos vertederos son tan grandes (5 T), no puedo descomprimir los datos xml en HDFS y simplemente usar el StreamXmlRecordReader que proporciona hadoop. Hadoop es compatible con la descompresión de archivos bz2, pero divide las páginas arbitrariamente y las envía al asignador. Como esto es xml, necesitamos que las divisiones sean etiquetas. ¿Hay alguna forma de usar el lector de registro descompuesto bz2 y stream xml proporcionado por hadoop juntos?Cómo leer bz2 comprimido (bzip2) Volcados de Wikipedia en el lector de registro xml de flujo para el mapa de hadoop reducir
Respuesta
Su problema es el mismo que se describe here. Entonces mi respuesta es la misma. Debes crear tu propia variación en TextInputFormat. Allí haces un nuevo RecordReader que omite líneas hasta que ve el inicio de una línea lógica.
La Fundación Wikimedia acaba de lanzar un lector de entrada para la interfaz Hadoop Streaming que es capaz de leer los archivos de volcado completo comprimido bz2 y enviarlo a sus mapeadores. La unidad que se envía a un asignador no es una página completa, sino dos revisiones (por lo que puede ejecutar una diferencia en las dos revisiones). Este es el lanzamiento inicial y estoy seguro de que habrá algunos errores, pero por favor échale un vistazo y ayúdanos a probarlo.
Este InputReader requiere Hadoop 0.21 ya que Hadoop 0.21 tiene soporte de transmisión para archivos bz2. El código fuente está disponible en: https://github.com/whym/wikihadoop
- 1. ¿Cómo puedo depurar el mapa de Hadoop? Reducir
- 2. Hadoop Mapa/Reducir vs Mapa incorporado/Reducir
- 3. Calcular/validar bz2 (bzip2) CRC32 en Python
- 4. Hadoop - el aumento de tareas mapa en XML no aumenta cuando se ejecuta tareas mapa
- 5. Subversion diff para el archivo xml comprimido
- 6. Cómo escribir el mapa reducir en R?
- 7. Ejemplo de Hadoop WordCount pegado en el mapa 100% reducir 0%
- 8. Tarea del grupo de apio para usar en un flujo de trabajo de mapa/reducir
- 9. Hadoop: cómo acceder (muchas) imágenes de fotos para ser procesadas por mapa/reducir?
- 10. resolver un problema con el mapa reducir
- 11. Obtención de archivos HTML estáticos del volcado XML de Wikipedia
- 12. ¿Cómo puedo reducir el número de anotaciones en un mapa?
- 13. Algoritmo de redundancia para leer el flujo de bits ruidoso
- 14. Hadoop one Map y multiple Reducir
- 15. ¿Cómo funciona el "enlace de Wikipedia" de Wikipedia?
- 16. Mapa: reducir el número de documentos en cada minuto MongoDB
- 17. Configurar el registro de Hadoop para evitar demasiados archivos de registro
- 18. Descomprimir el archivo BZIP2
- 19. ¿Cómo puedo separar una secuencia de un lector de flujo o un escritor de flujo?
- 20. Volcados de bases de datos en línea para el público
- 21. Simulando el flujo de fluido sobre un mapa de alturas
- 22. ¿Cómo leer el archivo XML en C#?
- 23. ¿Cómo leer el archivo de registro de innodb?
- 24. Cómo leer el archivo XML en Android
- 25. ¿Cuál es el mejor enfoque para generalizar y agregar volcados de XML en C#?
- 26. Cómo leer el archivo XML de iTunes en PHP
- 27. Recortar mapa de bits sin leer todo el mapa de bits primero
- 28. ¿Cuál es la forma más fácil de explicar qué es Hadoop y mapa/reducir?
- 29. ¿Cómo validar el mapa de sitio XML compatible?
- 30. python: leer líneas de archivos de texto comprimido
¿Por qué necesita dividir páginas por etiquetas? – svick
Queremos que se dividan por etiquetas para poder usar un analizador sintáctico en python para obtener los datos que necesitamos analizar (haremos diferentes tipos de análisis en las revisiones y el texto anterior de todas las páginas). –
No es posible dividir por etiquetas, ya que hay muchas páginas con más de 100Gb de longitud. Vea mi respuesta completa sobre el InputReader que acabamos de publicar. –
DrDee