HDFS es un sistema de archivos distribuido que almacena datos en una red de máquinas comerciales. HDFS funciona en el patrón de acceso a datos de transmisión, lo que significa que admite funciones de escritura uno y lectura múltiple . La operación de lectura en HDFS es muy importante y también muy necesaria para que sepamos, mientras trabajamos en HDFS, cómo se realiza realmente la lectura en HDFS (Sistema de archivos distribuidos de Hadoop). Comprendamos cómo funciona la lectura de datos HDFS.
Leer en HDFS parece simple pero no lo es. Cada vez que un cliente envía una solicitud a HDFS para leer algo de HDFS, el acceso a los datos o DataNode donde se almacenan los datos reales no se otorga directamente al cliente porque el cliente no tiene la información sobre los datos, es decir, en qué DataNode se almacenan los datos o donde se realiza la réplica de datos en DataNodes. Sin conocer la información sobre los DataNodes, el cliente nunca puede acceder o leer datos de HDFS.
Entonces, es por eso que el cliente primero envía la solicitud a NameNode, ya que NameNode contiene todos los metadatos o la información que necesitamos para realizar la operación de lectura en HDFS. Una vez que NameNode recibe la solicitud, responde y envía toda la información, como la cantidad de DataNodes, la ubicación donde se realiza la réplica, la cantidad de bloques de datos y su ubicación, etc. al cliente. Ahora el cliente puede leer datos con toda esta información proporcionada por NameNode. El cliente lee los datos en paralelo ya que la réplica de los mismos datos está disponible en el clúster. Una vez que se leen todos los datos, combina todos los bloques como el archivo original.
Comprendamos la lectura de datos en HDFS con un diagrama adecuado
Componentes que debemos conocer antes de aprender la operación de lectura de HDFS.
NameNode: el propósito principal de Namenode es administrar todos los metadatos. Como sabemos, los datos se almacenan en forma de bloques en un clúster de Hadoop. Entonces, en qué DataNode o en qué ubicación se almacena ese bloque del archivo se menciona en MetaData. Registro de la transacción que ocurre en un clúster de Hadoop, cuándo o quién lee o escribe los datos, toda esta información se almacenará en MetaData.
DataNode: DataNode es un programa que se ejecuta en el sistema esclavo que atiende la solicitud de lectura/escritura del cliente y se utiliza para almacenar datos en forma de bloques.
Cliente HDFS: El cliente HDFS es un componente intermedio entre HDFS y el usuario. Se comunica con Datanode o Namenode y obtiene la salida esencial que solicita el usuario.
En la imagen de arriba, podemos ver que primero, enviamos la solicitud a nuestro cliente HDFS, que es un conjunto de programas. Ahora, este cliente HDFS contacta a NameNode porque tiene toda la información o metadatos sobre el archivo que queremos leer. El NamoNode responde y luego envía todos los metadatos al cliente HDFS. Una vez que el cliente de HDFS sabe de qué ubicación tiene que elegir el bloque de datos, le pide al flujo de entrada de datos de FS que señale esos bloques de datos en los Nodes de datos. Luego, el flujo de entrada de datos FS realiza algún procesamiento y pone estos datos a disposición del cliente.
Veamos la forma de leer datos de HDFS.
Usando el comando HDFS:
Con la ayuda del siguiente comando, podemos leer directamente los datos de HDFS ( NOTA: asegúrese de que todos sus demonios de Hadoop se estén ejecutando).
Comandos para iniciar Hadoop Daemons
start-dfs.sh start-yarn.sh
Sintaxis para leer datos de HDFS:
hdfs dfs -get <source-path> <destination-path> # aquí la ruta de origen es la ruta del archivo en HDFS que queremos leer
# ruta de destino es donde queremos almacenar el archivo leído en la máquina local
Dominio
En nuestro caso, tenemos un archivo con el nombre dikshant.txt con algunos datos en el directorio raíz de HDFS. El siguiente comando, podemos usarlo para enumerar datos en el directorio raíz de HDFS.
hdfs dfs -ls /
el siguiente comando leerá los datos del directorio raíz de HDFS y los almacenará en la ubicación /home/dikshant/Desktop en mi máquina local.
hdfs dfs -get /dikshant.txt /home/dikshant/Desktop
En la imagen a continuación, podemos observar que los datos se leyeron y almacenaron con éxito en el directorio /home/dikshant/Desktop y ahora podemos ver el contenido al abrir este archivo.
Publicación traducida automáticamente
Artículo escrito por dikshantmalidev y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA