Un disco tiene un tamaño de bloque que decide cuánta información o datos puede leer o escribir. Los bloques de disco son generalmente diferentes al bloque del sistema de archivos. Los bloques del sistema de archivos normalmente tienen un tamaño de un par de kilobytes, mientras que los bloques de disco tienen un tamaño regular de 512 bytes. Esto suele ser sencillo para el cliente del sistema de archivos que está leyendo o escribiendo un documento de cualquier longitud. df y fsck son las herramientas que operan en el nivel de bloque del sistema de archivos y se utilizan para el mantenimiento de un sistema de archivos.
Al igual que otros sistemas de archivos, HDFS (Sistema de archivos distribuidos de Hadoop) también tiene la idea de almacenar o administrar los datos en bloques. Pero en HDFS, el tamaño predeterminado del bloque es mucho más grande que los sistemas de archivos simples. Los registros o archivos en HDFS se dividen en varios bloques del tamaño medido que se guardan como unidades autónomas. El tamaño del bloque de datos en HDFS es de 64 MB por defecto, que se puede configurar manualmente. En general, los bloques de datos de 128 MB de tamaño se utilizan en la industria. La principal ventaja de usar HDFS para almacenar la información en un clúster es que si el tamaño del archivo es menor que el tamaño del bloque, en ese caso no ocupará el bloque completo de almacenamiento subyacente.
¿Por qué un bloque en HDFS es tan grande?
Los bloques HDFS son más grandes que los bloques de disco, y la explicación es limitar el gasto de búsqueda. El tiempo o el costo de transferir los datos desde el disco se puede hacer mayor que el tiempo de buscar el comienzo del bloque simplemente mejorando significativamente el tamaño de los bloques. Por lo tanto, para mover un registro o archivo enorme hecho de diferentes bloques se establece en la velocidad de transferencia de disco normal.
Una estimación rápida muestra que si el tiempo de búsqueda de un bloque de datos es de alrededor de 10 ms , y la tasa de cambio, es decir, la velocidad a la que se transfieren los datos es de 100 MB/s , en ese punto para hacer que el tiempo de búsqueda sea el 1% del tiempo de intercambio, tenemos que hacer que el tamaño del disco sea de alrededor de 100 MB . Sin embargo, el tamaño predeterminado de los bloques de HDFS es de 64 MB , pero muchas instalaciones de HDFS, aunque numerosas, utilizan bloques de datos de 128 MB. A medida que aumente la velocidad de transferencia de las unidades de disco en el futuro, el tamaño de estos bloques de datos también seguirá el movimiento ascendente y esta cifra seguirá cambiando.
Hay muchos otros beneficios que se pueden lograr solo por la abstracción de bloques de datos, analicemos cada uno de ellos.
- Es posible que el archivo que estamos almacenando en HDFS sea más grande que el disco único en nuestra red de clúster. con bloques de datos, en HDFS no es necesario almacenar todos los bloques de un registro en el mismo disco. HDFS puede utilizar cualquiera de los discos disponibles en el clúster.
- En HDFS, la abstracción se realiza sobre los bloques de un archivo en lugar de un solo archivo, lo que simplifica el subsistema de almacenamiento. Dado que el tamaño de los bloques es fijo, es fácil administrar y calcular cuántos bloques se pueden almacenar en un solo disco. El subsistema de almacenamiento simplifica el sistema de administración de almacenamiento al eliminar el problema del almacenamiento de metadatos (la información relacionada con el registro y el permiso del archivo). Los bloques HDFS son capaces de almacenar los datos del archivo en múltiples DataNodes en un clúster. Podemos utilizar otro sistema que gestiona los metadatos por separado, normalmente conocido como NameNode.
- Otro beneficio de usar la abstracción de bloques es que brindar replicación a los bloques de datos es simple, por lo que se puede lograr tolerancia a fallas y alta disponibilidad en nuestro clúster de Hadoop. De forma predeterminada, cada bloque de datos se replica tres veces en las máquinas físicas disponibles en nuestro clúster. En caso de que el bloque de datos no esté disponible de alguna manera, la copia del mismo bloque de datos también se puede proporcionar desde algún otro Node disponible en nuestro clúster donde se realiza la réplica. Un bloque que está dañado se replica en alguna otra máquina en vivo solo para mantener el factor de replicación en el estado normal. Algunas aplicaciones importantes pueden requerir una alta replicación para proporcionar una disponibilidad extra alta y distribuir la carga de lectura en nuestro clúster.
El comando HDFS fsck entiende los bloques. ejecutar el siguiente comando fsck enumerará todos los detalles relacionados con los bloques que componen cada archivo en el sistema de archivos.
hdfs fsck / -files -blocks
Hagamos una práctica rápida para entender esto:
Paso 1: inicie todos sus Hadoop Daemons con los siguientes comandos.
start-dfs.sh // this will start your namenode, datanode and secondary namenode start-yarn.sh // this will start your resource manager and node manager
Paso 2: verifique el estado de ejecución de Daemon con los siguientes comandos.
jps
Paso 3: Ejecute el comando HDFS fsck .
hdfs fsck / -files -blocks
Con la explicación anterior, podemos observar fácilmente todos los detalles sobre los bloques que componen cada archivo en nuestro sistema de archivos.
Publicación traducida automáticamente
Artículo escrito por dikshantmalidev y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA