Documento de Universidad sobre UD2: Hadoop y su ecosistema. El Pdf explora Hadoop y su ecosistema, analizando componentes clave como HDFS y MapReduce, junto con los objetivos de aprendizaje de la unidad. Es un recurso de Informática que detalla la arquitectura distribuida de Hadoop y sus capacidades de escalabilidad.
Ver más41 páginas


Visualiza gratis el PDF completo
Regístrate para acceder al documento completo y transformarlo con la IA.
2002 La historia de Hadoop se remonta a 2002, cuando Doug Cutting y Mike Cafarella empezaron a trabajar en un proyecto denominado Apache Nutch, que tenía el objetivo de construir un motor de búsqueda que pudiera ser indexado por mil millones de páginas de internet. Después del estudio que hicieron con las tecnologías que en esos momentos estaban disponibles para tal ejercicio, se dieron cuenta de que los costes serían especialmente altos, y quizás inabordables, según fueran creciendo en la web otros miles de millones de páginas.
2003 Así que continuaron trabajando en un sistema que pudiera llevar a cabo esa tarea y, en el 2003, Google publicó otro estudio en el que se describía la arquitectura para almacenar grandes cantidades de datos, denominada GFS (Google File System). Pero ese documento de Google solo resolvía la parte de almacenamiento e indexación de la información. En 2004, desarrolladores de Nutch escribieron una implementación open source basada en GFS, a la que llamaron Nutch Distributed File System (NDFS).
2004También en 2004, Google publicó un nuevo estudio con la técnica MapReduce, que era un nuevo paradigma de procesamiento de la información en sistemas distribuidos, lo que daba una solución completa a Doug y Mike para crear una solución open source de almacenamiento y proceso de datos. Google proporcionó la idea de almacenamiento y proceso de datos en sistemas distribuidos y los desarrolladores de Nutch lo implementaron en una solución en 2004.
2006 Y fue en 2006 cuando la comunidad Apache identificó que esta tecnología podía usarse de forma extendida. Debido a que con Nutch solo podía escalar a unos 20 nodos, Doug Cutting se unió a Yahoo! para poder escalar a muchos más nodos en ese sistema distribuido. El proyecto recibió el nombre de Apache Hadoop.
2007 En 2007, Yahoo! comenzó a usar esta tecnología en un clúster de 100 nodos, y en 2008, Apache Hadoop se convirtió en un proyecto del más alto nivel de la fundación Apache. Empezó a extenderse como tecnología estándar para entornos de big data.
Nació como infraestructura para el almacenamiento y procesamiento de grandes volúmenes de datos en hardware commodity sin que hicieran falta grandes servidores dotados de mucha memoria y muchos procesadores. La idea era poder utilizar hardware de bajo coste como máquinas conectadas mediante una red gestionada de forma centralizada y que pudiera escalar en almacenamiento y capacidad de proceso sin grandes inversiones en hardware.
Pero Hadoop no nació solo para almacenar información. Hay otra importante tarea para la que fue concebido, que es el procesamiento de información. Los ingenieros detrás de Hadoop vieron que una estructura distribuida de nodos para el almacenamiento en discos también les podría servir para usar sus capacidades de procesamiento y crearon un nuevo paradigma de proceso: MapReduce. Este permite tratar grandes volúmenes de datos de forma paralela entre los diferentes nodos del clúster dividiendo la tarea principal en tareas más pequeñas, que se distribuyen entre los nodos para al final agrupar y conseguir el resultado final del proceso.
A modo de resumen de lo que es Hadoop, se destacan dos conceptos muy importantes para entenderlo:
En la imagen que se muestra a continuación, se puede ver un clúster con varios nodos: uno es el máster, que es el que dirige las operaciones de almacenamiento y distribución del procesamiento; y dos nodos slaves, que son los nodos que sirven para almacenar la información (HDFS) y llevar a cabo el procesamiento de datos (MapReduce). Más adelante se verán con detalle las funciones del nodo que funciona como maestro (master) y las de los nodos que funcionan como esclavos (slaves).
Pero las necesidades se fueron ampliando y las grandes plataformas tecnológicas que empezaron a usar esta nueva tecnología fueron creando nuevas herramientas que enriquecieron lo creado hasta el momento, lo que dio lugar a todo un ecosistema de soluciones que giran alrededor de Hadoop.Job Task Task Job- tracker Task- tracker Task- tracker Map/Reduce HDFS Name node Data node Data node Master Slave 1 Slave N Figura 1. Ejemplo de clúster Hadoop con varios nodos. Fuente: Wikipedia.org.
Se enmarcan dentro del ecosistema Hadoop las herramientas que completaron la tecnología de almacenamiento y proceso distribuido iniciada en los procesos de big data con el almacenamiento en HDFS y los procesos de datos basados en el paradigma MapReduce.
Las compañías que empezaron a utilizar Hadoop, pronto tuvieron la necesidad de complementar el trabajo que hacían estas nuevas herramientas con tecnologías que ayudaran a realizar funciones complementarias. Para la carga de datos a un clúster de Hadoop surgieron Sqoop y Flume.
La necesidad de dotar con un lenguaje de consulta SQL para recuperar información almacenada se cubrió inicialmente con Hive. Conforme se iba trabajando con el clúster, surgieron nuevas necesidades para gestión de flujos de trabajo y nació Oozie, también en la coordinación de recursos del clúster, nació Zoekeeper. Por último, con Pig se buscó una gestión de un scripting para el proceso de datos que fuese sencillo y manejable.
Estas son las principales herramientas que conforman lo que hoy se llama "ecosistema Hadoop" y que se ve representado en la siguiente imagen con la posición de cada herramienta dentro del ecosistema en función de sus características. Más adelante, en la unidad de NoSQL, se tratará HBase, cuya funcionalidad, a pesar de pertenecer HBase a este ecosistema, la aproxima más a las bases de datos.Machine Learning Distributed Programming Scheduling Mahout danshout Machine Learning Scripting SQL Query Stiv Spark Oozie Workflow Data Ingestion MapReduce Framework-YARN NoSQL Database Sqoop WPhadoop map Reduce >APACHE HBASE Distributed Filesystem Zookeeper Coordination Storm HOFS Hadoop core Figura 2. Imagen de una arquitectura de un ecosistema Hadoop. Fuente: blogthinkbig.com.
La gestión con comandos del sistema de ficheros de HDFS es muy similar a cómo se ejecutan los comandos Shell de cualquier sistema operativo Linux. Hay dos formas de ejecutar comandos Hadoop FS y HDFS DFS. La diferencia radica en que la primera permite apuntar a cualquier formato de archivos, ya sea HDFS, HTTP, S3 u otros, mientras que la segunda solo lo hará para HDFS. En este módulo, siempre se usará HDFS DFS.
A continuación, se citan algunos de los comandos más comúnmente utilizados en HDFS: