Tengo conjuntos de datos en una magnitud de 3 dígitos GB o incluso 1 o 2 dígitos TB. Los archivos de entrada son, por lo tanto, una lista de archivos, cada uno con un tamaño de 10 GB. Mi mapa reduce trabajo en hadoop procesa todos estos archivos y luego solo da un archivo de salida (con la información agregada).Hadoop MapReduce: Tamaño de archivo de entrada apropiado?
Mis preguntas son:
Cuál es el tamaño de archivo adecuado para afinar el marco Hadoop/mapreduce de Apache? Escuché que los tamaños de archivo más grandes son más preferidos que los pequeños. ¿Tienes alguna idea? Lo único que sé con certeza es que hadoop lee bloques, cada uno con 64 MB por defecto. Entonces sería bueno si el tamaño del archivo es un tipo de multiplicador de 64MB.
Por el momento, mi aplicación está escribiendo el archivo de salida en un solo archivo. El tamaño del archivo es, por supuesto, de 3 dígitos gigabit. Me pregunto qué tan eficientemente puedo particionar el archivo. Por supuesto, puedo usar algunas herramientas de Unix para hacer este trabajo. Pero, ¿se prefiere hacer esto directamente en hadoop?
Thx para sus comentarios!
P.S .: No estoy comprimiendo los archivos. El formato de archivo de los archivos de entrada es text/csv.
Muchas preguntas (devuelva la respuesta a su pregunta original): ¿Está comprimiendo los archivos? En caso afirmativo, ¿qué tipo de compresión está utilizando (gzip, bz2, ...)? ¿Cuál es el formato de archivo de los archivos de entrada (texto, binario?) –
@Chris: no estoy comprimiendo los archivos. El formato de archivo de los archivos de entrada es text/csv. ¡Gracias! – Bob