Tengo que analizar archivos PDF, que se encuentran en HDFS en un programa Map Reduce en Hadoop. Entonces obtengo el archivo PDF de HDFS como Entradas de entrada y tiene que ser analizado y enviado a la clase Mapper. Para implementar este InputFormat, he pasado por este link. ¿Cómo se pueden analizar y dividir estas divisiones de entrada en formato de texto?Análisis de archivos PDF en Hadoop Map Reduce
Respuesta
Procesamiento de archivos PDF en Hadoop se puede hacer extendiendo FileInputFormat Clase. Deje que la clase que lo extiende sea WholeFileInputFormat. En la clase WholeFileInputFormat sobrescribe el método getRecordReader(). Ahora cada pdf se recibirá como División de entrada individual. Entonces estos divisiones individuales se pueden analizar para extraer el texto. Este link proporciona un claro ejemplo de cómo ampliar FileInputFormat.
Depende de sus divisiones. Creo (podría estar equivocado) que necesitará cada PDF como un todo para poder analizarlo. Hay bibliotecas de Java para hacer esto, y Google sabe dónde están.
Dado que, tendrá que usar un enfoque donde tenga el archivo como un todo cuando esté listo para analizarlo. Suponiendo que quieras hacer eso en el mapeador, necesitarías un lector que entregue los archivos completos al mapeador. Puede escribir su propio lector para hacer esto, o tal vez ya haya uno. Posiblemente pueda construir un lector que escanee el directorio de archivos PDF y pase el nombre de cada archivo como la clave en el asignador y los contenidos como el valor.
La implementación del formato WholeFileInput en lugar del formato CombileFileInput resuelve el problema. Por lo tanto, en el formato WholeFileInput, cada archivo PDF se recibirá como una sola división de entrada. Entonces estas divisiones de entrada se pueden analizar por completo. – WR10
Además, al tratar de analizar todo el archivo como una sola división, ¿no será un cuello de botella el tamaño del archivo que se lee? Considere un archivo de TB en tamaño y si hay un solo archivo, entonces debe analizarse obligatoriamente en una sola máquina. ¿Cómo superamos este cuello de botella? – WR10
Bueno, primero averigüe si realmente es el caso que necesita el PDF en su totalidad para poder analizarlo. Si no, eso soluciona el problema. Suponiendo que no puede dividirlo, entonces creo que debe pasar los nombres de los archivos como divisiones, y leer directamente desde HDFS en su asignador. –
- 1. Hadoop Map Reduce: Algorithms
- 2. ¿Alguien encuentra Cascading for Hadoop Map Reduce útil?
- 3. mongoDB map/reduce menos the reduce
- 4. ¿Tiene Mongoid Map/Reduce?
- 5. CouchDB: map-reduce en Erlang
- 6. Versioning couchdb map-reduce functions
- 7. problemas al ejecutar simple map-reduce los ejemplos de hadoop en cygwin
- 8. MongoDB map reduce with query
- 9. RavenDB Map-Reduce Ejemplo usando .NET Client
- 10. MongoDB Map/Reduce Array agregación pregunta
- 11. CouchDB map/reduce a una matriz
- 12. En Hadoop Map-Reduce, ¿alguna clase ve la lista completa de claves después de ordenar y antes de particionar?
- 13. Hadoop one Map y multiple Reducir
- 14. Cómo calcular el valor máximo usando Map-Reduce en CouchDB?
- 15. clave nula desde map/reduce en consecuencia couchdb
- 16. Secuencia de archivos en Hadoop
- 17. MultipleOutputFormat en hadoop
- 18. ¿Cuál es la mejor manera de ejecutar Map/Reduce cosas en Mongo?
- 19. ¿Cómo decide Hive cuándo usar map reduce y cuándo no?
- 20. Archivos comprimidos Hadoop gzip
- 21. ¿Hay algún problema canónico que no pueda ser ayudado con map/reduce?
- 22. Grep en varios archivos en el sistema de archivos Hadoop
- 23. Uso de la caché distribuida con Pig en Elastic Map Reduce
- 24. Análisis de archivos MAP: ¿de dónde viene el tamaño del código?
- 25. Reduce el tamaño del archivo PDF generado con Quartz2D
- 26. Conversión de google map a pdf en php
- 27. Cómo programar las tareas de Hadoop Map en un clúster de 8 nodos de múltiples núcleos?
- 28. Hadoop Mapa/Reducir vs Mapa incorporado/Reducir
- 29. PDF Análisis con texto y coordenadas
- 30. Map Reducir marcos/Infraestructura
Esta respuesta puede ser parte de lo que está buscando: http://stackoverflow.com/a/9298965/698839 –