2011-07-17 11 views
6

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

+0

¿Por qué necesita dividir páginas por etiquetas? – svick

+0

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). –

+0

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

Respuesta

0

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.

7

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

Cuestiones relacionadas