Hadoop

Hadoop

Información
Creador Doug Cutting y Mike Cafarella ( en )
Desarrollado por Fundación de software Apache
Primera versión 1 st de abril de de 2006
Última versión 3.3.0 (14 de julio de 2020)
Depositar git-wip-us.apache.org/repos/asf/hadoop.git , gitbox.apache.org/repos/asf?p=hadoop.git y github.com/apache/hadoop
Escrito en Java
Sistema de explotación Multiplataforma y POSIX
Medio ambiente Máquina virtual de Java
Tipo Marco de referencia
Licencia Licencia Apache versión 2.0 y Licencia pública general GNU
Documentación wiki.apache.org/hadoop/HowToContribute
Sitio web hadoop.apache.org

Hadoop es un marco de trabajo de código abierto y gratuito escrito en Java destinado a facilitar la creación de aplicaciones distribuidas (en términos de almacenamiento y procesamiento de datos) y escalables (escalables) que permiten que las aplicaciones funcionen con miles de nodos y petabytes de datos. Por tanto, cada nodo está formado por máquinas estándar agrupadas en un clúster. Todos los módulos de Hadoop están diseñados con la idea de que las fallas de hardware son frecuentes y, por lo tanto, el marco debe manejarlas automáticamente.

Hadoop se inspiró en la publicación de MapReduce , GoogleFS y BigTable de Google . Hadoop fue creado por Doug Cutting y ha sido parte de los proyectos de Apache Software Foundation desde 2009.

El núcleo de Hadoop consta de una parte de almacenamiento: HDFS ( Hadoop Distributed File System ) y una parte de procesamiento llamada MapReduce. Hadoop divide los archivos en grandes bloques y los distribuye entre los nodos del clúster. Para procesar los datos, transfiere el código a cada nodo y cada nodo procesa los datos que tiene. Esto hace posible procesar todos los datos de manera más rápida y eficiente que en una arquitectura de supercomputadora más tradicional que se basa en un sistema de archivos paralelo donde los cálculos y los datos se distribuyen a través de redes de alta velocidad.

El marco básico de Hadoop consta de los siguientes módulos:

El término Hadoop se refiere no solo a los módulos básicos anteriores, sino también a su ecosistema y a todo el software que viene a conectarse a él como Apache Pig , Apache Hive , Apache HBase , Apache Phoenix , Apache Spark , Apache ZooKeeper , Apache Impala , Apache Flume , Apache Sqoop , Apache Oozie , Apache Storm .

Histórico

En 2004, Google publicó un artículo en el que presentaba su algoritmo basado en operaciones analíticas a gran escala en un gran clúster de servidores, MapReduce , así como su sistema de archivos en clúster, GoogleFS . Doug Cutting , que estaba trabajando en el desarrollo de Apache Lucene en ese momento y encontró problemas similares a los de la firma Mountain View, decidió usar los conceptos descritos en el artículo para desarrollar su propia versión de las herramientas en una versión de código abierto. . , que se convertirá en el proyecto Hadoop.

Se inspiró en el peluche de su hijo de cinco años, un elefante amarillo, para el logotipo y el nombre de este nuevo marco de Java .

En 2006, Doug Cutting decidió unirse a Yahoo con el proyecto Nutch y las ideas basadas en el trabajo inicial de Google en términos de procesamiento y almacenamiento de datos distribuidos.

En 2008, Yahoo ofreció Hadoop como un proyecto de código abierto.

En 2011, nació Hadoop en la versión 1.0.0; con fecha de27 de diciembre de 2011.

La 23 de mayo de 2012, la comunidad de código abierto lanza Hadoop 2.0, que se ofreció al público desde noviembre de 2012 como parte del proyecto Apache, patrocinado por la Apache Software Foundation . La mayor revolución fue la adición de la capa YARN en la estructura de Hadoop.

A partir de septiembre de 2016, se lanza la versión 3.0.0-alpha1.

Arquitectura

Sistema de archivos distribuido Hadoop

HDFS es un sistema de archivos distribuido , extensible y portátil desarrollado por Hadoop de GoogleFS . Escrito en Java , fue diseñado para almacenar grandes volúmenes de datos en una gran cantidad de máquinas equipadas con discos duros estándar. Permite la abstracción de la arquitectura de almacenamiento físico, para poder manipular un sistema de archivos distribuido como si fuera un solo disco duro.

Una arquitectura de máquinas HDFS (también llamada clúster HDFS) se basa en dos tipos de componentes principales:

NameNode espacio de nombres, este componente gestiona el espacio de nombres , el sistema de archivos del árbol, y el archivo y directorio de metadatos . Centraliza la ubicación de los bloques de datos distribuidos en el cluster . Es único pero tiene una instancia secundaria que administra el historial de modificaciones en el sistema de archivos (función de respaldo ). Este NameNode secundario permite la continuidad del funcionamiento del clúster Hadoop en caso de falla del NameNode original. DataNode nodo de datos, este componente almacena y recupera bloques de datos. Durante el proceso de lectura de un archivo, se consulta el NameNode para ubicar todos los bloques de datos. Para cada uno de ellos, el NameNode devuelve la dirección del DataNode más accesible, es decir, el DataNode que tiene el mayor ancho de banda . Los DataNodes comunican periódicamente al NameNode la lista de bloques de datos que alojan. Si algunos de estos bloques no están suficientemente replicados en el cluster , la escritura de estos bloques se realiza en cascada copiando a otros.

Cada DataNode sirve como un bloque de datos en la red utilizando un protocolo específico para HDFS. El sistema de archivos utiliza la capa TCP / IP para la comunicación. Los clientes utilizan la llamada a procedimiento remoto para comunicarse entre sí. HDFS almacena archivos grandes en varias máquinas. Alcanza confiabilidad al replicar datos en múltiples hosts y, por lo tanto, no requiere almacenamiento RAID en los hosts. Con la replicación predeterminada, los datos se almacenan en tres nodos: dos en el mismo medio y uno en diferentes medios. Los DataNodes pueden comunicarse para reequilibrar los datos y mantener un alto nivel de replicación de datos.

HDFS no cumple completamente con las especificaciones POSIX , ya que los requisitos para un sistema de archivos POSIX difieren de los objetivos de una aplicación Hadoop. La compensación de no tener un sistema de archivos totalmente compatible con POSIX aumenta el rendimiento del rendimiento de los datos.

HDFS ha mejorado recientemente sus capacidades de alta disponibilidad, lo que ahora permite que el servidor de metadatos primario sea conmutado por error manualmente a una copia de seguridad en caso de una falla (la conmutación por error automática está en desarrollo). Dado que los NameNodes son el único punto para almacenar y administrar metadatos , pueden ser un cuello de botella al admitir una gran cantidad de archivos, especialmente cuando los archivos son pequeños. Al aceptar varios espacios de nombres servidos por NameNodes separados, HDFS mitiga este problema.

Mapa reducido

Hadoop tiene una implementación completa del concepto MapReduce.

HBase

HBase es una base de datos distribuida con almacenamiento estructurado para tablas grandes.

Como BigTable , HBase es una base de datos orientada a columnas .

ZooKeeper

ZooKeeper es un software de gestión de configuración para sistemas distribuidos, basado en el software Chubby desarrollado por Google. ZooKeeper se utiliza, entre otras cosas, para la implementación de HBase.

Colmena

Hive es un software de análisis de datos que permite utilizar Hadoop con una sintaxis similar a SQL . Hive fue desarrollado originalmente por Facebook .

Cerdo

Pig es un software de análisis de datos comparable a Hive, pero que utiliza el idioma Pig Latin . Pig fue desarrollado originalmente por Yahoo! .

Usos

Varios grandes nombres en TI han declarado usar Hadoop, como Facebook , Yahoo , Microsoft . Yahoo opera el clúster de Hadoop más grande del mundo, con más de 100,000 CPU y 40,000 máquinas dedicadas a esta tecnología.

WikiTrends es un servicio gratuito de análisis de audiencia de la enciclopedia Wikipedia lanzado enabril de 2014. La aplicación, utilizando en particular Hadoop, permite cuantificar los temas más buscados por los usuarios en la enciclopedia Wikipedia, a través de una interfaz de visualización gráfica.

Hadoop y la nube

Hadoop se puede implementar en un centro de datos tradicional, pero también a través de la nube . La nube permite a las organizaciones implementar Hadoop sin adquirir hardware o experiencia específicos.

Microsoft Azure

Azure HDInsight es un servicio que implementa Hadoop en Microsoft Azure. HDInsight usa Hortonworks Data Platform (HDP). HDInsight permite la programación de extensiones en .NET (además de Java). HDInsight también admite la creación de clústeres de Hadoop con Ubuntu.

Al usar HDInsight en la nube, las empresas pueden ejecutar tantos nodos como deseen; se facturarán según el cálculo y el almacenamiento que se utilice. Las implementaciones de HDP también pueden mover datos desde un centro de datos local a la nube para realizar copias de seguridad, desarrollo, pruebas y escenarios innovadores. También es posible ejecutar clústeres HDP en máquinas virtuales de Azure.

Servicios de Amazon EC2 / S3

Es posible ejecutar Hadoop en Amazon Elastic Compute Cloud (EC2) y en Amazon Simple Storage Service (S3). Como ejemplo, The New York Times utilizó 100 instancias de Amazon EC2 y una aplicación Hadoop para procesar 4 TB de imágenes TIFF sin procesar (almacenadas en Amazon S3) en 11 millones de archivos PDF.

Distribuciones

Hadoop se distribuye notablemente por cuatro jugadores que ofrecen servicios de formación y soporte comercial, así como funciones adicionales:

Notas y referencias

  1. "  https://archive.apache.org/dist/hadoop/common/  "
  2. "  https://hadoop.apache.org/release/3.3.0.html  "
  3. "  Publicación de investigación de Google: MapReduce  " , en research.google.com (consultado el 12 de septiembre de 2016 )
  4. (en) "  Hadoop Doug Cutting Daddy dice que hay un elefante en la habitación  " , The Register ,8 de mayo de 2014( leer en línea )
  5. "  Cloudera: una breve historia de Hadoop, su creador y una revolución | Silicio  ”, Silicio ,29 de marzo de 2012( leer en línea , consultado el 17 de julio de 2018 )
  6. “  Hadoop - Todo lo que necesita saber sobre la plataforma principal Big Data  ” , en www.lebigdata.fr (visitada 17 de de julio de, 2018 )
  7. "  Apache Hadoop Releases  " , en hadoop.apache.org (visitada 17 de julio 2018 )
  8. Lista de empresas que afirman utilizar Hadoop
  9. Apache.org, Uso de Hadoop en todo el mundo .
  10. "  WikiTrends, la primera aplicación de Big Data que proporciona más de 21  TB de estadísticas en tiempo real  " [PDF] , en www.itrpress.com ,3 de marzo de 2014(consultado el 10 de noviembre de 2014 )
  11. Marlène Duretz , "  Incluso no está mal  ", Le Monde ,3 de junio de 2014( leer en línea )
  12. https://azure.microsoft.com/en-us/solutions/hadoop/
  13. https://azure.microsoft.com/en-us/services/hdinsight/
  14. S i Official Cloudera you, presentando su servicio de formación y soporte
  15. "  Big Data: Cloudera se instala en Francia  ", Silicon ,7 de octubre de 2014( leer en línea , consultado el 22 de junio de 2017 )

Ver también

Artículos relacionados

enlaces externos