Realizar un seguimiento de los bloques de datos con namenode en hdfs

NameNode actúa como la libreta de direcciones para Hadoop Distributed File System (HDFS), ya que no sólo sabe que bloquea conforman archivos individuales, sino también el lugar donde se almacenan cada uno de estos bloques y sus réplicas. Cuando un usuario se almacena en un archivo en HDFS, el archivo se divide en bloques de datos, y tres copias de estos bloques de datos se almacenan en los nodos esclavos en todo el clúster Hadoop.

Eso es un montón de bloques de datos para seguir la pista. Como era de esperar, saber dónde están enterrados los cuerpos hace que el NameNode un componente de vital importancia en un cluster Hadoop. Si el NameNode no está disponible, las aplicaciones no pueden acceder a los datos almacenados en HDFS.

Si se echa un vistazo a la siguiente figura, se puede ver que el demonio NameNode se ejecuta en un servidor de nodo maestro. Toda la información de mapeo tratar con los bloques de datos y sus correspondientes archivos se almacenan en un archivo llamado.

HDFS es un sistema de archivos de diario, lo que significa que cualquier cambio de datos se registran en una revista de edición que realiza el seguimiento de eventos desde la última control - el último momento en que el registro de edición se fusionó con. En HDFS, la edición de la revista se mantiene en un archivo con el nombre que se almacena en el NameNode.

puesta en marcha y operación NameNode

Para entender cómo funciona el NameNode, es útil echar un vistazo a la forma en que se pone en marcha. Debido a que el propósito de la NameNode es informar a las aplicaciones de cuántos bloques de datos que necesitan para procesar y hacer un seguimiento de la ubicación exacta donde se almacenan, se necesita que todos los mapeos ubicaciones de los bloques y el bloque-a-archivo que están disponibles en RAM.

Estos son los pasos NameNode toma. Para cargar toda la información que necesita NameNode después de que se pone en marcha, ocurre lo siguiente:

  1. NameNode carga el archivo en la memoria.

  2. NameNode carga el archivo y re-interpreta los cambios registrados por diario para actualizar los metadatos de bloque que ya está en la memoria.

  3. Los demonios DataNode envían los informes de bloques NameNode.

    Para cada nodo esclavo, hay un informe de bloques que muestra todos los bloques de datos almacenados allí y describe el estado de cada uno.

Una vez completado el proceso de inicio, NameNode tiene una visión completa de todos los datos almacenados en HDFS, y está listo para recibir peticiones de aplicaciones de los clientes de Hadoop.

A medida que se añaden y se eliminan los archivos de datos en base a las solicitudes del cliente, los cambios se escriben en los volúmenes de disco del nodo esclavo, actualizaciones de diario se realizan en el archivo, y los cambios se reflejan en las ubicaciones de los bloques y los metadatos almacenados en la memoria del NameNode.

A lo largo de la vida de la agrupación, los demonios DataNode envían los latidos del corazón (NameNode una señal rápida) cada tres segundos, lo que indica que están activas. (Este valor predeterminado es configurable.) Cada seis horas (de nuevo, un defecto configurable), las DataNodes envían NameNode un informe con el bloque que bloquea archivos están en sus nodos. De esta manera, el NameNode siempre tiene una visión actual de los recursos disponibles en el clúster.

La escritura de datos

Para crear nuevos archivos en HDFS, el siguiente proceso tendría que tener lugar:

  1. El cliente envía una solicitud a la NameNode para crear un nuevo archivo.

    NameNode determina cuántos se necesitan bloques, y el cliente se le concede una arrendamiento para la creación de estos nuevos bloques de archivos del clúster. Como parte de este contrato, el cliente tiene un límite de tiempo para completar la tarea de creación. (Este límite de tiempo asegura que el espacio de almacenamiento no es absorbido por las aplicaciones cliente fallidos.)

  2. El cliente entonces escribe las primeras copias de los bloques de archivos a los nodos esclavos utilizando el contrato asignado por el NameNode.

    NameNode gestiona las peticiones de escritura y se determina dónde se deben escribir los bloques de archivo y sus réplicas, el equilibrio de la disponibilidad y el rendimiento. La primera copia de un bloque de archivo se escribe en un estante, y la segunda y tercera copias están escritos en un estante diferente de la primera copia, pero en diferentes nodos esclavos en el mismo rack. Esta disposición minimiza el tráfico de red al tiempo que garantiza que no hay bloques de datos están en el mismo punto de falla.

  3. Como cada bloque está escrito para HDFS, un proceso especial escribe las réplicas restantes a los otros nodos esclavos identificados por la NameNode.

  4. Después de que los demonios DataNode reconocen el archivo de bloque réplicas se han creado, la aplicación cliente cierra el archivo y notifica al NameNode, que luego se cierra el contrato de arrendamiento abierta.

lectura de datos

Para leer los archivos de HDFS, el siguiente proceso tendría que tener lugar:

  1. El cliente envía una solicitud al NameNode para un archivo.

    NameNode determina qué bloques están involucrados y decide, basándose en la proximidad general de los bloques entre sí y para el cliente, la ruta de acceso más eficiente.

  2. Luego, el cliente accede a los bloques utilizando las direcciones indicadas por la NameNode.

Equilibrio de datos en el cluster Hadoop

Con el tiempo, con combinaciones de patrones de ingestión de datos irregulares (donde algunos nodos esclavos podrían tener más datos escritos en ellas) o fallos en los nodos, los datos es probable que se convierta distribuido de manera desigual entre los bastidores y los nodos esclavos en el clúster Hadoop.

Esta distribución desigual puede tener un impacto negativo en el rendimiento debido a la demanda de los nodos esclavos individuales se convierten en nodos unbalanced- con pocos datos no será totalmente Used- y nodos serán usados ​​en exceso con muchos bloques. (Nota: El uso excesivo o insuficiente se basan en la actividad del disco, no en la CPU o RAM).

HDFS incluye una utilidad equilibrador para redistribuir bloques de nodos esclavos en exceso a los infrautilizados mientras se mantiene la política de poner bloques en diferentes nodos esclavos y bastidores. administradores de Hadoop HDFS debe comprobar regularmente la salud, y si los datos se convierte desigualmente distribuidos, deben activar el instrumento de equilibrador.

diseño de servidor maestro NameNode

Debido a su naturaleza de misión crítica, el servidor principal que ejecuta el demonio NameNode necesita marcadamente diferentes requisitos de hardware que las que para un nodo esclavo. Más significativamente, los componentes a nivel de empresa necesitan ser utilizados para reducir al mínimo la probabilidad de una interrupción. Además, tendrá suficiente memoria RAM para cargar en la memoria todos los metadatos y datos de ubicación de todos los bloques de datos almacenados en HDFS.

Artículos Relacionados