UD2: Hadoop y su ecosistema, componentes HDFS y MapReduce

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ás

41 páginas

UD2: hadoop y su ecosistema
I. Introducción y objetivos
II. Componentes Hadoop. HDFS y MapReduce
III. Clúster Hadoop
IV. Herramientas del ecosistema Hadoop
V. Cloudera
VI. Resumen
VII. Caso práctico
VIII. Lecturas recomendadas
IX. Enlaces de interés
I. Introducción y Objetivos
1.1. Introducción de la Unidad
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).
2004
Tambié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.
Hadoop
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.
1.2. Objetivos de la unidad
1. Identificar el origen y la problemática histórica del almacenamiento y proceso de grandes
volúmenes de datos.
2. Introducción a los conceptos técnicos relacionados con el almacenamiento y procesos de
datos en entornos distribuidos.
3. Entender el sistema de ficheros HDFS y el paradigma de procesos de datos MapReduce.
4. Adquirir los conocimientos necesarios sobre las tecnologías que rodean a una solución de
big data y su relación en un entorno de redes distribuidas (clúster), Yarn, Oozie, Sqoop,
Flume y Zoekeeper.
5. Aprender a elegir las soluciones adecuadas en función de las necesidades de negocio en
entornos de grandes volúmenes de datos.
II. Componentes Hadoop. HDFS y MapReduce

Visualiza gratis el PDF completo

Regístrate para acceder al documento completo y transformarlo con la IA.

Vista previa

Introducción y Objetivos

Introducción de la Unidad

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.

Hadoop

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.

Objetivos de la unidad

  1. Identificar el origen y la problemática histórica del almacenamiento y proceso de grandes volúmenes de datos.
  2. Introducción a los conceptos técnicos relacionados con el almacenamiento y procesos de datos en entornos distribuidos.
  3. Entender el sistema de ficheros HDFS y el paradigma de procesos de datos MapReduce.
  4. Adquirir los conocimientos necesarios sobre las tecnologías que rodean a una solución de big data y su relación en un entorno de redes distribuidas (clúster), Yarn, Oozie, Sqoop, Flume y Zoekeeper.
  5. Aprender a elegir las soluciones adecuadas en función de las necesidades de negocio en entornos de grandes volúmenes de datos.

Componentes Hadoop. HDFS y MapReduce

  • ALMACENAMIENTO: Hadoop utiliza una arquitectura distribuida que escala de forma eficiente añadiendo nuevos nodos para almacenar tanta información como haga falta sin que los costes se vean fuertemente afectados. Esto con respecto al volumen, pero hay otra variable que maneja, que es la de la diversidad: permite almacenar cualquier formato de fichero, ya sea con una estructura definida o no. Esto significa que no hay necesidad alguna de seguir un esquema definido para almacenar la información.
  • PROCESAMIENTO: En cuanto al procesamiento, Hadoop permite tratar grandes volúmenes de datos de forma muy eficiente utilizando paralelismos entre nodos que dividen la tarea a llevar a cabo para procesarla mediante el aprovechamiento de todos estos nodos.

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:

  • Escalabilidad: Hadoop es una arquitectura de redes de máquinas (clúster) que pueden escalar o crecer añadiendo tantos nuevos nodos (máquinas) como hagan falta para el almacenamiento o proceso de datos.
  • Paralelismo o procesamiento distribuido: Estas redes usan también la capacidad de sus procesadores para hacer un procesamiento de la información de forma controlada, dividida y distribuida entre las diferentes máquinas, lo que aprovecha la capacidad de toda la red para al final conseguir un resultado.

Saber más

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.

HDFS

  • HDFS: Es un sistema de ficheros para el almacenamiento de la información de forma masiva y distribuida en un clúster Hadoop. Puede descansar sobre hardware commodity sin grandes necesidades de recursos y, por tanto, en recursos que no necesariamente deben tener altos costes. La información se aloja en discos locales entre los múltiples nodos del clúster con un mínimo de tres réplicas que son configurables por el administrador del sistema y pueden llegar a cientos o miles de máquinas. Según Matt Asav de TechRepublic[1], el clúster de Hadoop más grande del mundo le pertenecía a Yahoo!, y tenía 100 000 núcleos y 40 000 nodos. Eso da una idea de las dimensiones que puede alcanzar una instalación de Hadoop. 1Asav, M. "Why the world's largest Hadoop installation may soon become the norm". Techrepublic; 12 de septiembre de 2014. [En línea] URL disponible en este enlace.

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:

  • Comando 1: Listar la raíz del sistema de ficheros HDFS: o $ hdfs dfs -ls /
  • Comando 2: Copiar un fichero desde nuestra máquina local a la estructura de datos HDFS: 0 $ hdfs dfs -put /miservidor/fichero.csv /camino_hdfs/fichero.csv
  • Comando 3: Copiar un fichero desde la estructura de datos HDFS a la máquina local: o $ hdfs dfs -get /camino_hdfs/fichero.csv /miservidor/fichero.csv
  • Comando 4: Ver el contenido de un fichero en HDFS: o $ hdfs dfs -cat /camino_hdfs/fichero.csv Service Programming Pig Hive

¿Non has encontrado lo que buscabas?

Explora otros temas en la Algor library o crea directamente tus materiales con la IA.