Nodos esclavos en el sistema de archivos distribuidos Hadoop (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 de fondo (también conocido como una demonio) Comprueba los trozos de datos que el sistema almacena en su ordenador. 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 RAW en el sistema de archivos local. Desde la perspectiva de un usuario Hadoop, no tienes idea de cuál de los nodos esclavos tiene las piezas del archivo que necesita para procesar. Desde dentro de Hadoop, no ve los bloques de datos o cómo están distribuidos en todo el clúster - todo lo que ve es una lista de archivos en HDFS.

La complejidad de cómo los bloques de archivos se distribuyen en todo el clúster se esconde de usted - usted no sabe lo complicado que es todo esto, y no hacer necesitar para saber. En realidad, el esclavo nodos ellos mismos ni siquiera saben lo que hay dentro de los bloques de datos que están almacenando. Es el servidor NameNode que conoce las asignaciones de bloques de datos que componen los archivos almacenados en HDFS.

Mejor vida con la redundancia

Un principio de diseño básico de HDFS es el concepto de reducir al mínimo el costo de los nodos esclavos individuales mediante el uso de componentes de hardware de los productos básicos. Para los sistemas masivamente escalables, esta idea es una sensata porque los costos aumentan rápidamente cuando usted necesita cientos o miles de nodos esclavos. El uso de hardware de menor 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. Imagina que tienes un cluster de 750 nodos, donde cada nodo tiene 12 unidades de disco duro dedicados al almacenamiento de HDFS.

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

Porque no puede haber tantos nodos esclavos, su fracaso es también una ocurrencia común en grupos 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 esos tres copias de todos los archivos almacenados en HDFS, distribuidos en todo el sistema. Más específicamente, cada bloque de archivo almacenado en HDFS tiene un total de tres réplicas. Si un sistema se rompe con un bloque de archivo específico que usted necesita, puede recurrir a los otros dos.

Esbozar el diseño del servidor de nodo esclavo

Para equilibrar factores tan importantes como el costo 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. Nodos esclavos utilizan CPUs de doble socket moderadamente rápido con seis a ocho núcleos 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 el almacenamiento denso.

Debido HDFS es un sistema de archivos a nivel de espacio de usuario, es importante para optimizar el sistema de archivos local en los nodos esclavos para trabajar con HDFS. En este sentido, una decisión de alto impacto al configurar 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 más comúnmente desplegado porque ha sido la opción más estable durante un número de años. Echa un vistazo a Ext4, sin embargo. Es la próxima versión de Ext3, y ha estado disponible el tiempo suficiente para ser ampliamente considerado estable y fiable.

Más importante para nuestros propósitos, 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) - representa una capa adicional entre el sistema de archivos de Linux y HDFS, lo que impide Hadoop de optimizar su rendimiento. Específicamente, LVM agrega discos, lo que dificulta el manejo 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.




» » » » Nodos esclavos en el sistema de archivos distribuidos Hadoop (HDFS)