Apache Hadoop


Apache Hadoop ( / h ə d ü p / ) es una colección de código abierto utilidades de software que facilita el uso de una red de muchos ordenadores para resolver problemas que implican grandes cantidades de datos y computación. Proporciona un marco de software para el almacenamiento distribuido y el procesamiento de big data utilizando el modelo de programación MapReduce . Hadoop fue diseñado originalmente para clústeres de computadoras construidos a partir de hardware básico , que sigue siendo el uso común. [3] Desde entonces, también ha encontrado uso en clústeres de hardware de gama alta. [4] [5] Todos los módulos en Hadoop están diseñados con la suposición fundamental de que las fallas de hardware son ocurrencias comunes y deben ser manejadas automáticamente por el marco. [6]

El núcleo de Apache Hadoop consiste en una parte de almacenamiento, conocida como Hadoop Distributed File System (HDFS), y una parte de procesamiento que es un modelo de programación MapReduce. Hadoop divide los archivos en grandes bloques y los distribuye entre los nodos de un clúster. Luego transfiere el código empaquetado a los nodos para procesar los datos en paralelo. Este enfoque aprovecha la localidad de datos , [7] donde los nodos manipulan los datos a los que tienen acceso. Esto permite que el conjunto de datos se procese más rápido y de manera más eficiente de lo que sería en una arquitectura de supercomputadora más convencional que se basa en un sistema de archivos paralelo donde la computación y los datos se distribuyen a través de redes de alta velocidad. [8][9]

El término Hadoop se usa a menudo tanto para módulos base como para submódulos y también para el ecosistema , [12] o colección de paquetes de software adicionales que se pueden instalar encima o junto a Hadoop, como Apache Pig , Apache Hive , Apache HBase , Apache Phoenix , Apache Spark , Apache ZooKeeper , Cloudera Impala , Apache Flume , Apache Sqoop , Apache Oozie y Apache Storm . [13]

Los componentes MapReduce y HDFS de Apache Hadoop se inspiraron en los artículos de Google sobre MapReduce y Google File System . [14]

El marco de Hadoop en sí está escrito principalmente en el lenguaje de programación Java , con algo de código nativo en C y utilidades de línea de comandos escritas como scripts de shell . Aunque el código Java de MapReduce es común, cualquier lenguaje de programación se puede usar con Hadoop Streaming para implementar el mapa y reducir partes del programa del usuario. [15] Otros proyectos en el ecosistema de Hadoop exponen interfaces de usuario más ricas.

Según sus cofundadores, Doug Cutting y Mike Cafarella , la génesis de Hadoop fue el artículo del sistema de archivos de Google que se publicó en octubre de 2003. [16] [17] Este artículo generó otro de Google: "MapReduce: Simplified Data Processing en grandes clústeres ". [18] El desarrollo comenzó en el proyecto Apache Nutch , pero se trasladó al nuevo subproyecto Hadoop en enero de 2006. [19] Doug Cutting, que trabajaba en Yahoo! en ese momento, lo nombró en honor al elefante de juguete de su hijo. [20] El código inicial que se extrajo de Nutch consistió en aproximadamente 5,000 líneas de código para HDFS y aproximadamente 6,000 líneas de código para MapReduce.


Un clúster de Hadoop de varios nodos