Cómo anular InputFormat y OutputFormat en la aplicación hadoop

Tengo una aplicación que necesita leer un archivo que es un resultado serializado de ArrayList. ( ArrayList<String>, 50000 registros en esta lista, tamaño: 20 MB) No sé exactamente cómo leer los datos en la plataforma hadoop. Solo tengo la sensación de que necesito anular InputFormat y OutpurFormat. Soy un principiante en la plataforma hadoop. ¿Podrías darme algún consejo?

Gracias,

Zheng

Respuesta 1

Para comenzar, necesitará extender FileInputFormat, destacando la implementación del método abstracto FileInputFormat.createRecordReader .

Puede mirar a través de la fuente de algo como LineRecordReader (que es lo que TextInputFormat usa para procesar archivos de texto).

A partir de ahí, estará prácticamente solo (es decir, depende de cómo se haya serializado su ArrayList). Mire a través de la fuente de LineRecordReader e intente relacionarlo con la forma en que se ha serializado su ArrayList.

Algunos otros puntos de nota, ¿es su formato de archivo divisible? Es decir, puede buscar un desplazamiento en el archivo y recuperar la secuencia desde allí (los archivos de texto pueden escanear hacia adelante hasta el final de la línea actual y luego comenzar desde allí). Si su formato de archivo usa compresión, también debe tener esto en cuenta (por ejemplo, no puede buscar aleatoriamente una posición en un archivo gzip). De manera predeterminada, FileInputFormat.isSplittable devolverá verdadero, que es posible que desee anular inicialmente para que sea falso. Si te quedas con 'unsplittable', ten en cuenta que tu archivo será procesado por un único mapeador (sin importar su tamaño).

Respuesta: 2

En Java tengo una clase base abstracta, digamos WrapX, que contiene una propiedad de un tipo, digamos X (piense en Decorator DP). Esta clase presenta un método para llamar a un método específico en la X encapsulada: ...

Escribo una aplicación de Android y uso GeoFirestore. No puedo obtener una lista con los usuarios de Firestore dentro de un rango de 30 metros. Creo que me equivoqué al hacer una estructura de datos. Estructura de datos: ¿...

Tengo que pensar mucho sobre la optimización en una aplicación de Android por primera vez. He buscado, pero cuanto más busco, más me confundo. ¿Alguien sabe de buena documentación para describir ...

Estoy tratando de codificar una Cadena usando el cifrado XOR y uso una matriz de bytes como clave: Cadena encodedString = myString XOR myKey No tengo mucha experiencia con la criptografía, así que no he encontrado una manera ...