¿Qué es HDFS? (Sistema de archivos distribuido Hadoop)
摘要: Explicación de lo que es HDFS (sistema de archivos distribuido Hadoop). En este artículo, también se describe cómo se utiliza HDFS y se proporciona un ejemplo.
说明
¿Qué es HDFS? (Sistema de archivos distribuido Hadoop)
Hechos
Respuesta del sistema
de archivos distribuido Hadoop
Acerca de Hadoop Distributed File System (HDFS)
Para comprender cómo es posible escalar un clúster de Hadoop® a cientos (e incluso miles) de nodos, debe comenzar con hadoop Distributed File System (HDFS). Los datos en un clúster de Hadoop
se dividen en partes más pequeñas (denominadas bloques) y se distribuyen en todo el clúster. De esta manera, las funciones de mapeo y reducción se pueden ejecutar en subconjuntos más pequeños de sus conjuntos de datos más grandes, lo que proporciona la escalabilidad necesaria para el procesamiento de Big Data.
¿Cuál es el objetivo?
El objetivo de Hadoop es utilizar servidores comúnmente disponibles en un clúster muy grande, donde cada servidor tiene un conjunto de unidades de disco internas económicas. Para obtener un mayor rendimiento, MapReduce
intenta asignar cargas de trabajo a estos servidores donde se almacenan los datos que se procesarán. Esto se conoce como localidad de datos. (Debido a este principio, no se recomienda usar una red de área de almacenamiento (SAN) o un almacenamiento conectado en red (NAS) en un entorno Hadoop. Para las implementaciones de Hadoop que utilizan una SAN o NAS, la sobrecarga de comunicación de red adicional puede causar cuellos de botella de rendimiento, especialmente para clústeres más grandes). Tómese un momento y piense en un clúster de 1000 máquinas, donde cada máquina tiene tres unidades de disco internas; a continuación, considere la tasa de fallas de un clúster compuesto por 3000 unidades económicas + 1000 servidores económicos.
Es probable que ya estemos en la misma página: El tiempo promedio de falla del componente (MTTF) que va a experimentar en un clúster hadoop probablemente sea similar a una cremallera en la chaqueta de su niño: va a fallar (y, en términos verídicos, las cremalleras parecen fallar solo cuando realmente las necesita). Lo bueno de Hadoop es que la realidad de las tasas de MTTF asociadas con el hardware económico en realidad se comprende bien (un punto de diseño, si lo desea) y parte de la fortaleza de Hadoop es que tiene tolerancia a fallas incorporada y capacidades de compensación de fallas. Esto es lo mismo para HDFS, ya que los datos se dividen en bloques y las copias de estos bloques se almacenan en otros servidores del clúster de Hadoop. Es decir, un archivo individual se almacena en realidad como bloques más pequeños que se replican en varios servidores en todo el clúster.
Un ejemplo de HDFS
Piense en un archivo que contenga los números de teléfono para todos en los Estados Unidos; las personas con apellidos que comienzan con A pueden almacenarse en el servidor 1, B en el servidor 2, etc. En un mundo de Hadoop, las piezas de esta guía telefónica se almacenarían en todo el clúster y, para reconstruir todo el teléfono, su programa necesitaría los bloques de cada servidor del clúster. Para lograr la disponibilidad a medida que fallan los componentes, HDFS replica estas piezas más pequeñas en dos servidores adicionales de manera predeterminada. (Esta redundancia se puede aumentar o disminuir por archivo o para un ambiente completo; por ejemplo, un clúster hadoop de desarrollo generalmente no necesita redundancia de datos). Esta redundancia ofrece múltiples beneficios, el más obvio es una mayor disponibilidad.
Además, esta redundancia permite que el clúster de Hadoop divida el trabajo en fragmentos más pequeños y ejecute esos trabajos en todos los servidores del clúster para una mejor escalabilidad. Por último, obtiene el beneficio de la localidad de datos, que es fundamental cuando se trabaja con grandes conjuntos de datos. Detallamos estos beneficios importantes más adelante en este capítulo.