Los nodos esclavos en el sistema de archivos hadoop distribuida (hdfs)

En un clúster Hadoop, cada nodo de datos (también conocido como un nodo esclavo) Se ejecuta un proceso de fondo llamado DataNode. Este proceso en segundo plano (también conocido como demonio) Comprueba los trozos de datos que el sistema almacena en su ordenador. Se habla regularmente con el servidor maestro para HDFS (conocido como el NameNode) que informe sobre el estado de salud y de los datos almacenados localmente.

Los bloques de datos se almacenan como archivos en bruto en el sistema de archivos local. Desde la perspectiva de un usuario de Hadoop, no tiene idea de cuál de los nodos esclavos tiene las piezas del archivo que necesita para procesar. Desde dentro de Hadoop, que no se ve bloques de datos o cómo están distribuidos en todo el clúster - todo lo que ves es una lista de archivos en HDFS.

La complejidad de cómo los bloques de archivos se distribuyen a través del clúster es oculto - usted no sabe lo complicado que es todo, y no lo hace necesitar saber. En realidad, el esclavo linfáticos mismos ni siquiera saben lo que hay dentro de los bloques de datos que se está almacenando. Es el servidor NameNode que conoce las asignaciones de bloques de datos, que componen los archivos almacenados en HDFS.

Una mejor vida con la redundancia

Un núcleo principio de diseño de HDFS es el concepto de minimizar el coste de los nodos esclavos individuales mediante el uso de componentes de hardware de los productos básicos. Para los sistemas masivamente escalable, esta idea es sensata porque los costos aumentan rápidamente cuando se necesita cientos o miles de nodos esclavos. El uso de hardware de bajo costo tiene una consecuencia, sin embargo, en que los componentes individuales no son tan fiables como hardware más caro.

Cuando usted está eligiendo las opciones de almacenamiento, tenga en cuenta el impacto de la utilización de unidades de productos básicos en lugar de unidades de calidad de la empresa más caros. Imagine que tiene un cluster de 750 nodos, donde cada nodo tiene 12 unidades de disco duro dedicados al almacenamiento HDFS.

Sobre la base de una tasa de fracaso anual (AFR) del 4 por ciento para las unidades de disco de las materias primas (una unidad de disco duro dado tiene una probabilidad del 4 por ciento de fracasar en un año dado, en otras palabras), el clúster es probable que experimente un fallo de disco duro todos los días del año.

Dado que puede haber tantos nodos esclavos, su fracaso es también una ocurrencia común en racimos más grandes con cientos o más nodos. Con esta información en mente, HDFS ha sido diseñado en el supuesto de que todas componentes de hardware, incluso a nivel de nodo esclavo, no son fiables.

HDFS supera la falta de fiabilidad de los componentes individuales de hardware a través de la redundancia: Esa es la idea detrás de esas tres copias de todos los archivos almacenados en HDFS, distribuidos en todo el sistema. Más específicamente, cada bloque de archivos almacenados en HDFS tiene un total de tres réplicas. Si un sistema se rompe con un bloque de archivo específico que necesita, puede convertir a los otros dos.

Esbozo de diseño de servidor nodo esclavo

Para equilibrar factores tan importantes como el coste total de propiedad, la capacidad de almacenamiento y rendimiento, es necesario planificar cuidadosamente el diseño de sus nodos esclavos.

Usted comúnmente ver nodos esclavos ahora que cada nodo tiene típicamente entre 12 y 16 unidades de disco duro de 3 TB conectadas localmente. Los nodos esclavos utilizan CPU de doble socket moderadamente rápido con seis a ocho núcleos de cada uno - no hay demonios de la velocidad, en otras palabras. Esto va acompañado de 48 GB de RAM. En resumen, este servidor está optimizado para densidad de almacenamiento.

Debido a HDFS es un sistema de archivos en el espacio a nivel de usuario, es importante optimizar el sistema de archivos local en los nodos esclavos para trabajar con HDFS. En este sentido, una decisión de alto impacto cuando la configuración de los servidores es la elección de un sistema de archivos para la instalación de Linux en los nodos esclavos.

Ext3 es el sistema de archivos usado más comúnmente, ya que ha sido la opción más estable durante un número de años. Echar un vistazo a Ext4, sin embargo. Es la próxima versión de Ext3, y ha estado disponible tiempo suficiente para ser considerado ampliamente como estable y fiable.

Más importante para nuestros propósitos, que tiene una serie de optimizaciones para el manejo de archivos de gran tamaño, lo que hace que sea una opción ideal para los servidores de nodo esclavo HDFS.

No utilice el Gestor de volúmenes lógicos de Linux (LVM) - que representa una capa adicional entre el sistema de archivos de Linux y HDFS, lo que impide Hadoop de optimizar su rendimiento. En concreto, LVM agregados de discos, lo que dificulta la gestión de los recursos que HDFS y los hilados de hacer, en función de cómo se distribuyen los archivos de las unidades físicas.

Artículos Relacionados