¿Qué Es Hadoop? Definición, características

¿Qué Es Hadoop? Definición, características. Cuando aprendas sobre Big Data, tarde o temprano encontrarás esta extraña palabra: Hadoop, ¿pero qué es exactamente?

Hadoop es un marco de procesamiento distribuido de código abierto que administra el procesamiento y almacenamiento de datos para aplicaciones de datos grandes que se ejecutan en sistemas agrupados. Es el centro de un creciente ecosistema de tecnologías de big data que se utilizan principalmente para respaldar las iniciativas de análisis avanzado, incluidas las aplicaciones de análisis predictivo , minería de datos y aprendizaje automático.

Hadoop puede manejar varias formas de datos estructurados y no estructurados, dando a los usuarios más flexibilidad para recopilar, procesar y analizar datos que las bases de datos relacionales y los almacenes de datos .

En pocas palabras, se puede considerar a Hadoop como un conjunto de programas y procedimientos de código abierto (lo que significa que esencialmente son gratuitos para que cualquiera los use o modifique, con algunas excepciones) que cualquiera puede usar como la “columna vertebral” de sus operaciones de big data.

Trataré de mantener las cosas simples, ya que sé que muchas personas que leen esto no son ingenieros de software, así que espero no simplificar demasiado nada. Piense en esto como una breve guía para alguien que quiera saber un poco. más sobre las tuercas y tornillos que hacen posible el análisis de grandes datos.

Los 4 modulos de Hadoop

Hadoop se compone de “módulos”, cada uno de los cuales realiza una tarea particular esencial para un sistema informático diseñado para el análisis de big data.

1. Sistema de archivos distribuido

Los dos más importantes son el Sistema de archivos distribuidos, que permite que los datos se almacenen en un formato de fácil acceso, a través de una gran cantidad de dispositivos de almacenamiento vinculados, y el MapReduce, que proporciona las herramientas básicas para buscar en los datos.

(Un “sistema de archivos” es el método utilizado por una computadora para almacenar datos, por lo que se puede encontrar y utilizar.

Normalmente, esto está determinado por el sistema operativo de la computadora, sin embargo, un sistema Hadoop utiliza su propio sistema de archivos que se encuentra “arriba” del sistema de archivos de la computadora host (lo que significa que se puede acceder a ella utilizando cualquier computadora que ejecute cualquier sistema operativo compatible).

2. MapReduce

MapReduce lleva el nombre de las dos operaciones básicas que lleva a cabo este módulo: leer los datos de la base de datos, ponerlos en un formato adecuado para el análisis (mapa) y realizar operaciones matemáticas, es decir, contar el número de hombres de más de 30 años en una base de datos de clientes (reducir ).

3. Hadoop Común

El otro módulo es Hadoop Common, que proporciona las herramientas (en Java) necesarias para los sistemas informáticos del usuario (Windows, Unix o lo que sea) para leer los datos almacenados en el sistema de archivos Hadoop.

4. YARN

El módulo final es YARN, que administra los recursos de los sistemas que almacenan los datos y ejecutan el análisis.

Varios otros procedimientos, bibliotecas o funciones se han considerado parte del “marco” de Hadoop en los últimos años, pero estos cuatro se han consolidado a lo largo del tiempo.

Cómo llegó Hadoop

El desarrollo de Hadoop comenzó cuando los ingenieros de software con visión de futuro se dieron cuenta de que se estaba convirtiendo rápidamente en algo útil para que cualquiera pudiera almacenar y analizar conjuntos de datos mucho más grandes de lo que prácticamente se puede almacenar y acceder a ellos en un dispositivo de almacenamiento físico (como un disco duro).

Esto se debe en parte a que, a medida que los dispositivos de almacenamiento físico se hacen más grandes, el componente que lee los datos del disco (que en el disco duro sería el “cabezal”) tarda más en moverse a un segmento específico. En cambio, muchos dispositivos más pequeños que trabajan en paralelo son más eficientes que uno grande.

Fue lanzado en 2005 por la Apache Software Foundation, una organización sin fines de lucro que produce software de código abierto que alimenta gran parte de Internet entre bastidores. Y si te estás preguntando de dónde vino el nombre extraño, ¡fue el nombre que se le dio a un elefante de juguete que pertenece al hijo de uno de los creadores originales!

El uso de Hadoop

La naturaleza flexible de un sistema Hadoop significa que las empresas pueden agregar o modificar su sistema de datos a medida que cambian sus necesidades, utilizando partes baratas y fácilmente disponibles de cualquier proveedor de TI.

Hoy en día, es el sistema más utilizado para proporcionar almacenamiento y procesamiento de datos a través de hardware “básico”: sistemas relativamente baratos, listos para usar, vinculados entre sí, en lugar de costosos, sistemas personalizados hechos a medida para el trabajo en cuestión. De hecho, se afirma que más de la mitad de las empresas de Fortune 500 la utilizan.

Casi todos los grandes nombres en línea lo usan, y como cualquiera puede modificarlo para sus propios fines, las modificaciones hechas al software por ingenieros expertos en Amazon y Google, por ejemplo, se envían a la comunidad de desarrollo, donde A menudo se utilizan para mejorar el producto “oficial”. Esta forma de desarrollo colaborativo entre usuarios voluntarios y comerciales es una característica clave del software de código abierto.

En su estado “sin procesar”, utilizando los módulos básicos que se suministran aquí http://hadoop.apache.org/ por Apache, puede ser muy complejo, incluso para los profesionales de TI, por lo que se han desarrollado varias versiones comerciales, como Cloudera, que simplifique la tarea de instalar y ejecutar un sistema Hadoop, así como ofrecer servicios de capacitación y soporte.

Así que, en pocas palabras (bastante grande), es Hadoop. Gracias a la naturaleza flexible del sistema, las empresas pueden expandir y ajustar sus operaciones de análisis de datos a medida que su negocio se expande. Y el apoyo y el entusiasmo de la comunidad de código abierto detrás de ella ha dado lugar a grandes avances para hacer que el análisis de big data sea más accesible para todos.

Hadoop está orientado principalmente a los usos analíticos, y su capacidad para procesar y almacenar diferentes tipos de datos lo hace especialmente adecuado para las aplicaciones de análisis de big data.

Los entornos de Big Data generalmente involucran no solo grandes cantidades de datos, sino también varios tipos, desde datos de transacciones estructuradas hasta formas de información semiestructuradas y no estructuradas, como registros de flujo de clics de Internet, registros de aplicaciones móviles y de servidor web, publicaciones en redes sociales, correos electrónicos de clientes y sensores de Datos de internet de las cosas ( IoT ) .

Formalmente conocida como Apache Hadoop, la tecnología se desarrolla como parte de un proyecto de código abierto dentro de Apache Software Foundation ( ASF ) .

Las distribuciones comerciales de Hadoop son ofrecidas actualmente por cuatro proveedores principales de plataformas de big data: Amazon Web Services (AWS), Cloudera, Hortonworks y MapR Technologies. Además, Google, Microsoft y otros proveedores ofrecen servicios gestionados basados ​​en la nube que se construyen sobre Hadoop y tecnologías relacionadas.

Hadoop y big data

Hadoop se ejecuta en grupos de servidores de productos básicos y puede ampliarse para admitir miles de nodos de hardware y grandes cantidades de datos.

Utiliza un sistema de archivos distribuido homónimo que está diseñado para proporcionar un acceso rápido a los datos a través de los nodos en un clúster, además de capacidades tolerantes a fallas para que las aplicaciones puedan continuar ejecutándose si los nodos individuales fallan. En consecuencia, Hadoop se convirtió en una plataforma de administración de datos fundamental para los usos de análisis de big data después de que surgiera a mediados de la década de 2000.

Hadoop fue creado por los científicos de computación Doug Cutting y Mike Cafarella, inicialmente para admitir el procesamiento en el motor de búsqueda de código abierto Nutch y el rastreador web. Después de que Google publicara documentos técnicos que detallan su sistema de programación Google File System (GFS) y MapReduce en 2003 y 2004, respectivamente, Cutting y Cafarella modificaron planes de tecnología anteriores y desarrollaron una implementación de MapReduce basada en Java y un sistema de archivos modelado en Google.

A principios de 2006, esos elementos se separaron de Nutch y se convirtieron en un subproyecto Apache separado, que Cutting llamó a Hadoop en honor al elefante de peluche de su hijo. Al mismo tiempo, Cutting fue contratado por la compañía de servicios de internet Yahoo, que se convirtió en el primer usuario de producción de Hadoop más tarde en 2006. (Cafarella, entonces estudiante graduada, se convirtió en profesora universitaria).

El uso del marco creció en los próximos años, y se fundaron tres proveedores independientes de Hadoop: Cloudera en 2008, MapR un año después y Hortonworks como escisión de Yahoo en 2011. Además, AWS lanzó un servicio en la nube de Hadoop llamado Elastic MapReduce en 2009 Eso fue todo antes de que Apache lanzara Hadoop 1.0.0, que estuvo disponible en diciembre de 2011 después de una sucesión de lanzamientos de 0.x.

Componentes de Hadoop

Los componentes principales en la primera iteración de Hadoop fueron MapReduce, el Sistema de archivos distribuidos de Hadoop ( HDFS ) y Hadoop Common, un conjunto de utilidades y bibliotecas compartidas. Como su nombre lo indica, MapReduce utiliza funciones de mapa y reducción para dividir los trabajos de procesamiento en múltiples tareas que se ejecutan en los nodos del clúster donde se almacenan los datos y luego combinan lo que las tareas producen en un conjunto coherente de resultados. MapReduce funcionó inicialmente como motor de procesamiento de Hadoop y administrador de recursos de clúster, que vinculaba HDFS directamente a él y limitaba a los usuarios a ejecutar las aplicaciones por lotes de MapReduce.

Eso cambió en Hadoop 2.0 , que estuvo generalmente disponible en octubre de 2013 cuando se lanzó la versión 2.2.0. Presentó Apache Hadoop YARN , una nueva tecnología de gestión de recursos de clúster y planificación de tareas que se hizo cargo de esas funciones de MapReduce. YARN: abreviatura de Yet Another Resource Negotiator, pero generalmente mencionado solo por sus siglas en inglés, puso fin a la estricta dependencia de MapReduce y abrió Hadoop a otros motores de procesamiento y diversas aplicaciones, además de los trabajos por lotes.

La serie de lanzamientos Hadoop 2.0 también agregó características de alta disponibilidad (HA) y federación para HDFS, soporte para ejecutar clusters de Hadoop en servidores Microsoft Windows y otras capacidades diseñadas para expandir la versatilidad del marco de procesamiento distribuido para la gestión y análisis de big data.

Hadoop 3.0.0 fue la siguiente versión importante de Hadoop. Lanzado por Apache en diciembre de 2017, no expandió el conjunto de componentes centrales de Hadoop. Sin embargo, agregó una característica de la Federación YARN diseñada para permitir que YARN admita decenas de miles de nodos o más en un solo clúster, hasta un límite anterior de 10,000 nodos. La nueva versión también incluía soporte para GPU y codificación de borrado , una alternativa a la replicación de datos que requiere un espacio de almacenamiento significativamente menor.

Aplicaciones y casos de uso de Hadoop.

Un caso de uso común para los sistemas de big data basados ​​en Hadoop es el análisis de clientes . Los ejemplos incluyen los esfuerzos para predecir la rotación de clientes, analizar los datos del flujo de clics para dirigir mejor los anuncios en línea a los usuarios web y rastrear el sentimiento del cliente basado en los comentarios sobre una compañía en las redes sociales.

Las aseguradoras utilizan Hadoop para aplicaciones como el análisis de precios de pólizas y la administración de programas de descuento para conductores seguros. Las organizaciones de atención médica buscan formas de mejorar los tratamientos y los resultados de los pacientes con la ayuda de Hadoop.

YARN expandió enormemente las aplicaciones que los clusters de Hadoop pueden manejar para incluir el procesamiento continuo y las aplicaciones de análisis en tiempo real que se ejecutan en conjunto con los motores de procesamiento, como Apache Spark y Apache Flink.

Por ejemplo, algunos fabricantes están utilizando datos en tiempo real que se transmiten a Hadoop en aplicaciones de mantenimiento predictivo para intentar detectar fallas en los equipos antes de que ocurran. La detección de fraudes, la personalización de sitios web y la calificación de la experiencia del cliente son otros casos de uso en tiempo real.

Debido a que Hadoop puede procesar y almacenar una variedad tan amplia de datos, permite a las organizaciones configurar lagos de datos como reservorios expansivos para los flujos de información entrantes.

En un lago de datos de Hadoop , los datos sin procesar se almacenan a menudo tal como están, de modo que los científicos de datos y otros analistas pueden acceder a los conjuntos de datos completos, si es necesario; los datos o los equipos de TI filtran y preparan los datos según sea necesario para admitir otras aplicaciones.

Los lagos de datos generalmente tienen propósitos diferentes a los almacenes de datos tradicionales que contienen conjuntos limpiados de datos de transacciones. Pero, en algunos casos, las empresas ven sus lagos de datos Hadoop como almacenes de datos modernos.

De cualquier manera, el creciente papel del análisis de big data en la toma de decisiones de negocios ha hecho que la gobernabilidad de los datos y los procesos de seguridad de datos sean una prioridad en las implementaciones de lago de datos.

Herramientas de big data asociadas a Hadoop.

El ecosistema que se ha construido alrededor de Hadoop incluye una gama de otras tecnologías de código abierto que pueden complementar y ampliar sus capacidades básicas. La lista de herramientas relacionadas con big data incluye:

  • Apache Flume: una herramienta que se utiliza para recopilar, agregar y mover grandes cantidades de datos de transmisión a HDFS;
  • Apache HBase : una base de datos distribuida que a menudo se empareja con Hadoop;
  • Apache Hive : una herramienta SQL-on-Hadoop que proporciona resumen de datos, consulta y análisis;
  • Apache Oozie: un sistema de planificación de flujo de trabajo basado en servidor para administrar trabajos de Hadoop;
  • Apache Phoenix: un motor de base de datos de procesamiento masivo en paralelo (MPP) basado en SQL que utiliza HBase como su almacén de datos;
  • Apache Pig : una plataforma de alto nivel para crear programas que se ejecutan en clústeres de Hadoop;
  • Apache Sqoop: una herramienta para ayudar a transferir datos masivos entre Hadoop y almacenes de datos estructurados, como las bases de datos relacionales; y
  • Apache ZooKeeper : un servicio de registro de configuración, sincronización y nombres para grandes sistemas distribuidos.

Evolución del mercado de Hadoop.

Además de AWS, Cloudera, Hortonworks y MapR, varios otros proveedores de TI, en particular IBM, Intel y Pivotal (una filial de Dell Technologies), ingresaron al mercado de distribución de Hadoop.

Sin embargo, esas tres compañías se retiraron más tarde y se alinearon con uno de los proveedores restantes después de que no pudieron avanzar mucho con los usuarios de Hadoop. Intel abandonó su distribución e invirtió en Cloudera en 2014, mientras que Pivotal e IBM acordaron revender la versión de Hortonworks en 2016 y 2017, respectivamente.

Leer también: Todas las habilidades necesarias para convertirse en un científico de datos