Hadoop Distributed File System

HDFS, es un sistema de archivos distribuido, que tiene una gran cantidad de datos, terabytes o incluso petabytes. 



  • Es un sistema de archivos distribuido escalable y portátil. 
  • Se basa en el diseño de las EFP, Google File System. 
  • Es un sistema de archivos estructurado en bloques donde los archivos individuales se dividen en bloques de tamaño fijo. 
  • Se ejecuta en un espacio de nombres separado y aislado de los contenidos de los archivos locales. 
  • Los archivos se almacenan de forma redundante para asegurar la durabilidad contra el fracaso. 
  • Los datos se escriben en HDFS una vez, leer varias veces. 
  • Cambios a los archivos existentes en HDFS no son compatibles.
  • Una extensión de Hadoop proporcionará apoyo para anexar nuevos datos a los fines de archivo.

Ventajas


  • Puede contener grandes conjuntos de datos (terabytes a petabytes) a través de la distribución de datos entre múltiples máquinas altamente tolerante a fallos.
  • Througput alta computación paralela.
  • Streaming de acceso para presentar los datos del sistema.
  • Puede construirse a partir de hardware de bajo costo.
  • Lógica de procesamiento cerca de los datos.
  • Fiabilidad, manteniendo automáticamente varias copias de los datos.

Arquitectura




Protocolos de comunicación


  • Todos los protocolos de comunicación HDFS se colocan en capas en la parte superior del protocolo TCP / IP.
  • Cliente establece una conexión a un puerto TCP configurable en la máquina NameNode, usando el protocolo de cliente.
  • DataNodes hablar con el NameNode utilizando el protocolo DataNode.
  • NameNode sólo responde a la petición de llamada a procedimiento remoto emitido por DataNodes o clientes.

Rack Conciencia 


  • Pueden ser considerados como un conjunto de filas en las que cada fila consiste en un grupo de máquinas o nodos.
  • Los grupos grandes de Hadoop están dispuestas en forma de racks.
  • La comunicación entre nodos en los mismos racks es más rápido (mayor ancho de banda) que la existente entre los nodos repartidos en diferentes racks.
  • Habrá réplicas de bloque en varios racks para mejorar la culpa.
  • HDFS se puede hacer en rack para el uso de la escritura de la topología de red.
  • El nodo Master utiliza la secuencia de comandos de topología de red para mapear la topología de la red del cluster.
  • La topología de la red recibe las direcciones IP de las máquinas como entradas y devuelve la salida como una lista de nombres de Rack, una para cada entrada.


Re-balanceo por Bloque


  • Para distribuir uniformemente los datos HDFS (por igual) a través de DataNodes en un clúster.
  • Las réplicas de bloque se distribuirán en los racks para asegurar la copia de seguridad en caso de fallo del Rack.
  • En caso de fallo de un nodo, se dará preferencia a las réplicas en el mismo rack de forma que I/O en la red transversal del Rack se reduce.
  • Herramientas de Balanceo automático se incluye como parte de Hadoop inteligentemente equilibra los bloques a través de los nodos.
  • Perfecto equilibrio es probablemente alcanzado.
  • Es más deseable para ejecutar el equilibrio de escritura cuando la utilización de clúster es mínimo.

Demonios

  • Los demonios son los programas residentes que constituyen a Hadoop en ejecución.
  • Es una interfaz sencilla para ejecutar un programa utilizando Hadoop.
  • Incluye NameNode, DataNode, NameNode secundaria, JobTracker y TaskTracker.

NameNode

  • NameNode es todo un contador de HDFS.
  • Almacena todos los metadatos (datos sobre los datos) del FileSystem.
  • Realiza un seguimiento de cómo los archivos se dividen en bloques de archivos.
  • Chequea la salud general del sistema de archivos distribuido.
  • El clúster HDFS  consta de un solo NameNode, un servidor Master que gestiona el espacio de nombres de archivos y regula el acceso de clientes a los archivos.
  • Comprueba periódicamente mensajes de latidos del DataNode para verificar que está arriba.

NameNode secundario (SNN)

  • Es un demonio asistente que ayuda a supervisar el estado del clúster HDFS.
  • Hay un único NameNode secundaria por clúster.
  • Se comunica con el NameNode para recopilar información sobre el HDFS metadatos.
  • Usualmente se ejecuta en una máquina diferente que el nodo primario como requisitos de memoria están en el mismo orden que el nodo primario.
  • Se utiliza como respaldo para reconfigurar el clúster en caso de fallo de un nodo primario.

JobTracker

  • Un servicio dentro de Hadoop que asigna tareas a nodos específicos dentro del clúster HDFS.
  • Habrá un único JobTracker por  Cluster y generalmente se ejecuta en un nodo Master.
  • Las aplicaciones clientes envian jobs al JobTracker.
  • Se comunica con el NameNode para determinar la ubicación de los datos.
  • Localiza los nodos TaskTracker con ranuras disponibles o cerca de los datos y envía el trabajo al TaskTracker elegido.
  • Relanza la tarea en un nodo diferente, seleccionada en caso de fallo de tareas.
  • Periódicamente verifica los latidos de TaskTracker.
  • JobTracker actualiza el estado después de la finalización del trabajo.

TaskTracker

  • Un nodo en el clúster que acepta tareas - Mapea, reduce y aleatorias de JobTracker.
  • Inicia procesos de JVM independiente para manejar la tarea.
  • Notifica el estado de finalización de proceso a la JobTracker.
  • Envía mensajes de latidos al JobTracker para notificar el estado.
  • Sigue una arquitectura Maestro/Esclavo, donde JobTracker es el maestro y TaskTracker, el esclavo.
  • Habrá múltiples TasTrackers dentro de un clúster de HDFS.

Basic File System Operations

  • La interacción con HDFS se realiza a través de una secuencia de comandos monolítica llamada bin/Hadoop.
  • DFS y DFSADMIN son dos módulos en HDFS con los que podemos interactuar.

Command format

user@machine:hadoop$ bin/hadoop moduleName –cmd args….
moduleName indica cual subconjunto de funcionalidades usar de Hadoop.
-cmd               es el nombre del comando dentro del módulo a ejecutar.
args…             representa los argumentos
  • Algunos de los comandos básicos son los siguientes.
  • La cursiva denota variables para ser llenadas por el usuario.
  • “path" significa cualquier nombre de archivo o directorio.
  • "Src" y "dest" son los nombres de ruta en una operación dirigida.
  • "Localsrc" y "localdest" son vías de acceso del sistema de archivos local.
Comando
Descripción
-rm path
Remueve los archivo o directorios identificados por el path
-put localsrc dest
Copia los archivos o directorios desde el localFile identificado por localSRC al dest dentro de DFS.
-copyFromLocal localSrc dest
Idéntico al –put
-moveFromLocal localSrc dest
Copia los archivos o directorios desde el sistema localFile identificado por localSrc al dest dentro HDFS, borrando la copia local.


-get src localDest
Copia los archivos o directorios en HDFS identificados por src al sistema de archivos Local identificados por localDest.
-put localsrc dest
Copia los archivos o directorios desde el localFile identificado por localSRC al dest dentro de DFS.
-cat filename
Despliega el contenido de filename
-copyToLocal src localDest
Idéntico a -get

-moveToLocal src localDest
Trabaja parecido a –get, pero borra la copia en HDFS.
-mkdir path
Crea directorios llamados path en HDFS
-help cmd
Despliega la ayuda del comando.


Permisos y Seguridad en HDFS 

  • Diseñado para prevenir la corrupción accidental de datos.
  • No es un sólido modelo de seguridad que garantiza la denegación de acceso a terceros no autorizados.
  • Cada archivo o directorio tiene 3 permisos; read, write y execute.
  • La identidad no está autenticado formalmente con HDFS, éste se toma desde una fuente extrínseca.
  • Username utilizado para iniciar el proceso de hadoop es considerado el superusuario de HDFS.
  • Los permisos están habilitados en HDFS por defecto.

Desventajas


  • Proporciona rendimiento de lectura de streaming a expensas de búsquedas aleatorias en los archivos.
  • No es compatible con actualización de archivos existentes, aunque se espera que las versiones futuras si sean soportadas.
  • No proporciona un mecanismo para el almacenamiento en caché local de los datos.
  • Se espera que las máquinas individuales fallen de manera frecuente.
  • NameNode es un único punto de fallo para un clúster de HDFS.





No hay comentarios:

Publicar un comentario