java - tutoriales - tecnologias hadoop
Comprender los contadores del sistema de archivos de Hadoop (2)
Quiero entender los contadores del sistema de archivos en hadoop.
A continuación se encuentran los contadores de un trabajo que corrí.
En cada trabajo que ejecuto, observo que los bytes del archivo Map leídos son casi iguales a los bytes HDFS leídos. Y observo que los bytes de archivos escritos por el mapa son la suma de los bytes de archivos y los bytes hdfs leídos por el mapeador. Pls ayuda! ¿Los archivos locales y hdfs están leyendo los mismos datos, y la fase de mapa los está escribiendo en el sistema de archivos local?
Map
FILE_BYTES_READ 5,062,341,139
HDFS_BYTES_READ 4.405.881.342
FILE_BYTES_WRITTEN 9,309,466,964
HDFS_BYTES_WRITTEN 0
¡Gracias!
Entonces la respuesta es que lo que estás notando es específico del trabajo. Dependiendo del trabajo, los mapeadores / reductores escribirán más o menos bytes en el archivo local en comparación con los hdfs.
En su caso de mapeador, tiene una cantidad similar de datos que se leyeron desde ubicaciones locales y HDFS, no hay ningún problema allí. Su código de Mapper simplemente necesita leer sobre la misma cantidad de datos localmente que se lee desde HDFS. La mayoría de las veces, los Mappers se utilizan para analizar una cantidad de datos mayor que su RAM, por lo que no es sorprendente ver que posiblemente escriba los datos que obtiene del HDFS en un disco local. El número de bytes leídos desde HDFS y local no siempre parecerá que suman el tamaño de escritura local (que ni siquiera en su caso).
Aquí hay un ejemplo que usa TeraSort, con 100G de datos, mil millones de pares clave / valor.
File System Counters
FILE: Number of bytes read=219712810984
FILE: Number of bytes written=312072614456
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
HDFS: Number of bytes read=100000061008
HDFS: Number of bytes written=100000000000
HDFS: Number of read operations=2976
HDFS: Number of large read operations=0
Cosas para notar La cantidad de bytes leídos y escritos desde el HDFS es casi exactamente 100G. Esto se debe a que 100G debe ser ordenado, y los archivos finales ordenados deben escribirse. ¡También note que necesita hacer muchas lecturas / escrituras locales para retener y ordenar los datos, 2x y 3 veces la cantidad de datos que leyó!
Como nota final, a menos que solo desee ejecutar un trabajo sin preocuparse por el resultado. La cantidad de bytes HDFS escritos nunca debe ser 0, y la suya es HDFS_BYTES_WRITTEN 0
Este es el contador total para distribución HDFS, fase de mapa, fase de reducción de su trabajo.
Estos contadores, como su observador, son la suma de bytes de archivos y bytes hdfs. Hadoop usa el sistema de archivos lógico HDFS para compartir los recursos en el clúster.