Puntos clave: El ecosistema Hadoop mejora el procesamiento de big data a través de diversos componentes y herramientas, incluyendo proyectos destacados de Apache como Spark, Hive y Pig, que facilitan la gestión y el análisis de datos.
- Hadoop proporciona un marco fundamental con herramientas adicionales para tareas específicas.
- Las distribuciones comerciales mejoran la funcionalidad y la usabilidad de Hadoop.
Resumen del ecosistema Hadoop
Recuerda que Hadoop están un marco de trabajo. Si Hadoop fuera una casa, no sería un lugar muy cómodo para vivir. Proporcionaría paredes, ventanas, puertas, tuberías y cables. El ecosistema de Hadoop proporciona el mobiliario que convierte la estructura en un hogar cómodo para la actividad de big data que refleja tus necesidades y gustos específicos.
El ecosistema Hadoop incluye tanto proyectos oficiales de código abierto de Apache como una amplia gama de herramientas y soluciones comerciales. Algunos de los ejemplos de código abierto más conocidos incluyen Spark, Hive, Pig, Oozie y Sqoop. Las ofertas comerciales de Hadoop son aún más diversas e incluyen plataformas y distribuciones empaquetadas de proveedores como Cloudera, Hortonworks y MapR, además de una variedad de herramientas para tareas específicas de desarrollo, producción y mantenimiento de Hadoop.
La mayoría de las soluciones disponibles en el ecosistema Hadoop son destinadas a complementar uno o dos de los cuatro elementos centrales de Hadoop (HDFS, MapReduce, YARN y Common). Sin embargo, las soluciones de marco comercialmente disponibles ofrecen una funcionalidad más completa. Las secciones siguientes ofrecen una visión más detallada de algunos de los componentes más destacados del ecosistema Hadoop, comenzando por los proyectos Apache
Elementos del ecosistema Hadoop de código abierto Apache
El proyecto Apache Hadoop apoya activamente múltiples proyectos destinados a extiende las capacidades de Hadoop y a Haz su uso. Son varios proyectos de primer nivel para Crear herramientas de desarrollo, así como para gestionar el flujo y procesamiento de datos de Hadoop. Muchas soluciones comerciales de terceros se basan en tecnologías desarrolladas dentro del ecosistema Apache Hadoop.
Spark, Pig y Hive son tres de los proyectos Apache Hadoop más conocidos. Cada uno se está utilizado para Crea aplicaciones que procesen datos Hadoop. Aunque son muchos artículos y debates sobre si Spark, Hive o Pig están mejores, en la práctica muchas organizaciones no utilizan solo uno solo porque cada uno está optimizado para funciones específicas.
Spark es tanto un modelo de programación como un modelo de computación. Proporciona una puerta de entrada a la computación en memoria para Hadoop, lo que es una de las principales razones de su popularidad y amplia adopción. Spark ofrece una alternativa a MapReduce que permite que las cargas de trabajo se ejecuten en memoria, en lugar de en disco. Spark accede a los datos de HDFS pero evita el marco de procesamiento de MapReduce, eliminando así las operaciones de disco intensivas en recursos que requiere MapReduce. Al utilizar computación en memoria, las cargas de trabajo de Spark suelen ejecutarse entre 10 y 100 veces más rápido que la ejecución en disco.
Spark puede usarse independientemente de Hadoop. Sin embargo, se está empleando más comúnmente con Hadoop como alternativa a MapReduce para el procesamiento de datos. Spark puede coexistir fácilmente con MapReduce y con otros componentes del ecosistema que realizan otras tareas.
Spark también es popular porque soporta SQL, lo que ayuda a superar una carencia en la tecnología básica Hadoop. El entorno de programación Spark funciona de forma interactiva con shells de Scala, Python y R. Se ha utilizado para operaciones de extracción/transformación/carga de datos (ETL), procesamiento de flujos, desarrollo de aprendizaje automático y con la API Apache GraphX para computación y visualización de grafos. Spark puede ejecutarse en una variedad de clústeres Hadoop y no Hadoop, incluyendo Amazon S3.
Hive están un software de almacenamiento de datos que aborda cómo se están estructurados y consultados los datos en clústeres Hadoop distribuidos. Hive también están un entorno de desarrollo popular que se está utilizando para escribir consultas de datos en el entorno Hadoop. Proporciona herramientas para operaciones ETL y aporta algunas capacidades similares a SQL al entorno. Hive están un lenguaje declarativo que se está utilizado para desarrollar aplicaciones para el entorno Hadoop, aunque no soporta consultas en tiempo real.
Colmena tiene varios componentes, entre ellos:
- HCatalog – Ayuda a las herramientas de procesamiento de datos a leer y escribir datos en la red. Es compatible con MapReduce y Pig.
- WebHCat – Permite te utiliza una interfaz HTTP/REST para ejecutar trabajos MapReduce, Yarn, Pig y Hive.
- HiveQL – El lenguaje de consulta de Hive pensado como una forma para que los desarrolladores SQL trabajen fácilmente en Hadoop. Está similar a SQL y ayuda tanto a estructurar como a consultar datos en clústeres Hadoop distribuidos.
Las consultas Hive pueden ejecutarse desde la shell Hive, JDBC u ODBC. MapReduce (o una alternativa) desglosa las sentencias HiveQL para su ejecución en todo el clúster.
Hive también permite que el software de mapeo y reducción compatible con MapReduce realice funciones más sofisticadas. Sin embargo, Hive no permite actualizaciones a nivel de fila ni soporte para consultas en tiempo real, y no está pensado para cargas de trabajo OLTP. Muchos consideran que Hive es mucho más eficaz para procesar datos estructurados que los datos no estructurados, para los cuales Pig está considerado ventajoso.
Pig es un lenguaje procedimental para desarrollar aplicaciones de procesamiento paralelo para grandes conjuntos de datos en el entorno Hadoop. Pig es una alternativa a la programación en Java para MapReduce y genera automáticamente funciones MapReduce. Pig incluye Pig Latin, que es un lenguaje de scripting. Pig traduce los scripts Pig Latin a MapReduce, que luego puede ejecutarse en YARN y procesar datos en el clúster HDFS. Pig es popular porque automatiza parte de la complejidad en el desarrollo de MapReduce.
Pig se está utilizando comúnmente para casos de utiliza complejos que requieren múltiples operaciones de datos. Están más un lenguaje de procesamiento que un lenguaje de consulta. Pig ayuda a desarrollar aplicaciones que agregan y ordenan datos y soporta múltiples entradas y exportaciones. Es altamente personalizable, porque los usuarios pueden escribir sus propias funciones usando su lenguaje de scripting preferido. Ruby, Python e incluso Java son compatibles. Por ello, Pig ha sido una opción popular para desarrolladores que son familiarizados con esos lenguajes pero no con MapReduce. Sin embargo, los desarrolladores de SQL pueden encontrar Hive más fácil de aprender.
HBase están una base de datos NoSQL distribuida y escalable que se sitúa sobre el HFDS. Fue diseñada para almacenar datos estructurados en tablas que podrían tener miles de millones de filas y millones de columnas. Se ha desplegado para impulsar búsquedas históricas a través de grandes conjuntos de datos, especialmente cuando los datos deseados están contenidos en una gran cantidad de datos poco importantes o irrelevantes (también conocidos como conjuntos de datos dispersos). También es una tecnología subyacente detrás de varias grandes aplicaciones de mensajería, incluyendo la de Facebook.
HBase no es una base de datos relacional y no fue diseñada para soportar aplicaciones transaccionales ni otras aplicaciones en tiempo real. Está accesible a través de una API Java y cuenta con controladores ODBC y JDBC. HBase no soporta consultas SQL, sin embargo son varias herramientas de soporte SQL disponibles del proyecto Apache y de proveedores de software. Por ejemplo, Hive puede usarse para ejecutar consultas similares a SQL en HBase.
Oozie está el planificador de flujos de trabajo desarrollado como parte del proyecto Apache Hadoop. Gestiona cómo Comienza y se ejecutan los flujos de trabajo, y también controla la ruta de ejecución. Oozie es una aplicación web Java basada en servidor que utiliza definiciones de flujos de trabajo escritas en hPDL, que es un lenguaje XML de definición de procesos similar a JBOSS JBPM jPDL. Oozie solo soporta tipos específicos de flujos de trabajo, por lo que en entornos Hadoop son habitualmente usados otros planificadores de carga de trabajo en lugar de Oozie o además de él.
Piensa en Sqoop como un cargador frontal para big data. Sqoop es una interfaz de línea de comandos que facilita el traslado masivo de datos de Hadoop a bases de datos relacionales y otros almacenes de datos estructurados. Usar Sqoop sustituye la necesidad de desarrollar scripts para exportar e importar datos. Un caso de utiliza común están mover datos de un almacén de datos empresarial a un clúster Hadoop para procesamiento ETL. Realizar ETL en el clúster Hadoop comercial está eficiente en recursos, mientras que Sqoop ofrece un método práctico de transferencia.
Otros proyectos de código abierto relacionados con Apache Hadoop
Así están como la organización Apache describe algunos de los otros componentes de su ecosistema Hadoop.
- Ambari – Una herramienta web para provisionar, gestionar y monitorizar clústeres Apache Hadoop que incluye soporte para Hadoop HDFS, Hadoop MapReduce, Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig y Sqoop.
- Avro – Un sistema de serialización de datos.
- Cassandra – Una base de datos multi-maestro escalable sin puntos únicos de fallo.
- Chukwa – Un sistema de recopilación de datos para gestionar grandes sistemas distribuidos.
- Impala – La base de datos analítica nativa y de código abierto para Apache Hadoop. Impala está distribuida por Cloudera, MapR, Oracle y Amazon.
- Flume – Un servicio distribuido, fiable y disponible para recopilar, agregar y mover de forma eficiente grandes cantidades de datos de eventos en streaming.
- Kafka – Un broker de mensajería que se está utilizando a menudo en lugar de los brokers tradicionales en el entorno Hadoop porque está diseñado para un mayor rendimiento y proporciona replicación y mayor tolerancia a fallos.
- Mahout – Una biblioteca escalable de aprendizaje automático y minería de datos.
- Tajo – Un robusto sistema de big data, relacional, y almacenes de datos distribuidos para Apache Hadoop. Tajo está diseñado para consultas ad hoc de baja latencia y escalables, agregación en línea y ETL en grandes conjuntos de datos almacenados en HDFS y otras fuentes de datos. Al soportar estándares SQL y aprovechar técnicas avanzadas de bases de datos, Tajo permite el control directo de la ejecución distribuida y el flujo de datos a través de diversas estrategias de evaluación de consultas y oportunidades de optimización.
- Tez – Un marco de programación de flujo de datos generalizado, construido sobre Hadoop YARN, que proporciona un motor potente y flexible para ejecutar un DAG arbitrario de tareas para procesar datos tanto en casos de uso por lotes como interactivos. Tez está siendo adoptado por Hive, Pig y otros frameworks en el ecosistema Hadoop, así como por otros programas comerciales (por ejemplo, herramientas ETL), para reemplazar a MapReduce como motor de ejecución subyacente.
- Zookeper – Un servicio de coordinación de alto rendimiento para aplicaciones distribuidas.
Los elementos del ecosistema descritos anteriormente son todos proyectos Apache Hadoop de código abierto. Son numerosas soluciones comerciales que utilizan o soportan los proyectos Hadoop de código abierto. Algunas de las más destacadas son descritas en las siguientes secciones.
Distribuciones comerciales de Hadoop
Hadoop puede descargarse desde www.hadoop.apache.org y usarse de forma gratuita, como ha hecho miles de organizaciones. También son distribuciones comerciales que combinan la tecnología básica de Hadoop con funcionalidades, funcionalidades y documentación adicionales. Los principales proveedores de distribución comercial de Hadoop incluyen Cloudera, Hortonworks y MapR. También son muchas más herramientas menos completas y más específicas de tareas para el entorno Hadoop, como herramientas para desarrolladores y planificadores de tareas.
Guía Hadoop
- Tutorial de Hadoop para principiantes: Conceptos básicos de Hadoop
- Introducción a la administración Hadoop
- Introducción a la seguridad Hadoop
- Introducción al Apache Flume
- Una introducción a Hive
- Introducción a HDFS
- Introducción a Hbase
- Ejemplos de Hadoop: 5 casos de utiliza en el mundo real
- Carreras en Hadoop: Conseguir empleo
- Preguntas de entrevista en Hadoop
- Introducción a la analítica Hadoop
- Introducción a Apache Pig
- Introducción al hilo apache
- Introducción a la arquitectura Hadoop
- Ventajas y ventajas de Hadoop
- Usando Hadoop con Apache Cassandra
- Hadoop vs Kubernetes: ¿Acabarán K8s y Cloud Native con Hadoop?
- Certificaciones Hadoop
- Clústeres Hadoop: Una introducción
- Ecosistema y Componentes Hadoop
Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.