La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Agenda ¿Qué es Big Data? ¿Por qué usar Big Data? ¿Quién usa Big Data? Hadoop Arquitectura de Hadoop.

Presentaciones similares


Presentación del tema: "Agenda ¿Qué es Big Data? ¿Por qué usar Big Data? ¿Quién usa Big Data? Hadoop Arquitectura de Hadoop."— Transcripción de la presentación:

1

2

3 Agenda ¿Qué es Big Data? ¿Por qué usar Big Data? ¿Quién usa Big Data?
Hadoop Arquitectura de Hadoop

4 Big Data ¿Qué es Big Data?
Big Data es un concepto que se aplica a toda aquella información que no puede ser procesada o analizada usando procesos o herramientas convencionales debido al enorme volumen de datos sobre el cual hay que trabajar. ¿Por qué usar Big Data? ¿Quién usa Big Data?

5 Características Generales
Hadoop Características Generales Open Source Desarrollado originalmente por Yahoo Administrado por Apache Software Foundation Diseñado para trabajar con petabytes de datos Pensado para implementarse con hardware económico Ofrece alta disponibilidad Escala horizontalmente Muchas tecnologías de desarrollo están basadas en Hadoop Bueno aceptación en el mercado Curva de aprendizaje elevada No es una base de datos No es real time The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using a simple programming model

6 Componentes Principales
Hadoop Componentes Principales Hadoop se compone por tres elementos principales HDFS MapReduce Hadoop Common HDFS: Es el sistema de archivos por defecto que provee Hadoop. MapReduce: Es una implementación de éste paradigma de procesamiento de datos provista Hadoop, la cual opera directamente en el HDFS aprovechando la escalabilidad que éste ofrece. Hadoop Common: Es un conjunto de funcionalidades utilizada para dar soporte a aquellos proyectos que funcionan sobre Hadoop.

7 Hadoop Creado por Doug Cutting Google lo introdujo en 2004
MapReduce Creado por Doug Cutting Google lo introdujo en 2004 Consiste en la ejecución de dos procesos separados, Map y Reduce Paralelismo Escalabilidad Tolerancia a fallos Curva de aprendizaje elevada Fue creado por Doug Cutting quien también es el creador de Lucene. MapReduce fue introducido por Google en 2004 y a posteriori en 2006 por Yahoo para dar soporte al procesamiento paralelo de datos. MapReduce es el nombre dado a la combinación de dos procesos separados necesarios para la extracción de valores de un gran número de orígenes de datos distintos. La parte map funciona como extractor y asigna valores a determinadas claves para un único documento. La parte reduce realiza la función de acumulación y combina las claves de múltiples documentos para crear un valor reducido (combinado) único para cada clave a partir de los múltiples valores generados. Un trabajo grande puede dividirse en varias tareas, razón por la cual se pueden emplear varias máquinas para resolver cada una de estas. Debido a que el trabajo a realizar puede ser dividido en varias tareas y a su vez estas tareas pueden ser ejecutadas en paralelo en diversas máquinas diferentes se provee un enorme poder de procesamiento, lo cual brinda una gran escalabilidad horizontal. Como los datos se encuentran replicados en las máquinas (nodos) que conforman el cluster tiene una alta tolerancia a fallas ya que si uno de los nodos deja de estar disponible por algún motivo, otro nodo puede ocupar su lugar. Pensar el MapReduce por lo general es una tarea difícil que lleva bastante tiempo. Usarlo para contar palabras es simple ya que por su forma es algo que surge normalmente pero llevarlo más allá es tedioso.

8 Hadoop MapReduce - Map Recibe como entrada un par (clave, valor) y recupera como salida uno o varios pares (clave-i, valor-i) k1 v1 Map C1 vi1 k2 v2 k1 v3 k3 v4 Map C2 vi2 Cómo fue explicado previamente, las tareas de mapping se ejecutan en paralelo, lo cual brinda una enorme escalabilidad. El número de tareas que serán capaces de correr en paralelo depende del número de nodos que conforman el cluster teniendo en cuenta el número de slots configurado para las tareas de mapping por cada nodo. Para hacer más simple de comprender el funcionamiento del Map, lo hemos dividido en dos partes. En el primer caso, recibe como entrada un par (clave, valor) y genera como resultado intermedio uno o varios pares (clave-i, valor-i) donde cada uno de estos pares es una lista de elementos clave valor como puede observarse en el diagrama. k1 v5 k2 v6 k3 v7 Map C3 vi3 k1 v8 k4 v9

9 Hadoop MapReduce - Map Para cada (clave1, valor1) de entrada recupera una lista de (clave2, valor2) MEZCLAR Y ORDENAR k1 v1 k1 v1 v3 v5 v8 k2 v2 k1 v3 k3 v4 k2 v2 v6 En la segunda etapa del mapping se mezclan y ordenan los resultados intermedios en función de las claves. k1 v5 k2 v6 k3 v4 v7 k3 v7 k1 v8 k4 v9 k4 v9

10 Hadoop MapReduce - Reduce Recibe como entrada un par (clave, lista de valores) y recupera como salida un único par (clave, valor) Reduce k1 v1 v3 v5 v8 k1 vf1 Reduce k2 v2 v6 k2 vf2 Como puede observarse en el diagrama, durante el reduce se combina la lista de valores de cada una de las claves en un único par (clave, valor). Al igual que el Map, el reduce se ejecuta en paralelo y el número de reducers que pueden correr al mismo tiempo depende del número de nodos que conforman al cluster considerando el número de slots disponible para las tareas de reducing en cada nodo. Reduce k3 v4 v7 k3 vf3 Reduce k4 v9 k4 vf4

11 MapReduce - Arquitectura
Hadoop MapReduce - Arquitectura Es un componente de Hadoop Lee y escribe sobre el sistema de archivos de Hadoop (HDFS) JobTracker TaskTracker Input Job (Map, Reduce, Input) Data transfer Assign Task MapReduce está completamente integrado con Hadoop por lo cual se provee funcionalidad para hacer el Map y el Reduce. Básicamente, por tratarse de un componente de Hadoop, el MapReduce opera directamente sobre el HDFS por lo cual se debe almacenar la información a procesar de este, el MapReduce se sirve del HDFS y deja el resultado de su procesamiento almacenado en el mismo, es decir, en el HDFS. En el diagrama puede observarse cuales son las partes que constituyen MapReduce en Hadoop y como estas partes interactúan entre si.

12 MapReduce - Arquitectura
Hadoop MapReduce - Arquitectura JobTracker: Planificador de tareas Registra los trabajos pendientes Asigna las tareas a los nodos Mantiene los trabajos cerca de los nodos Si falla el JobTracker los trabajos pendientes de ejecución se pierden JobTracker Es un planificador de tareas encargado de distribuir el trabajo entrante a los nodos que conforman el cluster. Mantiene los trabajos lo más cerca posible de la máquina que emitió la información a procesar de forma de reducir el tráfico en la red principal del cluster. Si el total de slots disponibles en el nodo para la tarea a realizar, que puede ser Map o Reduce, se encuentra ocupado el JobTracker intentará asignar los trabajos en los nodos del mismo rack. Input Job (Map, Reduce, Input) JobTracker Assign Task

13 MapReduce - Arquitectura
Hadoop MapReduce - Arquitectura TaskTracker Se llaman TaskTrackers a los nodos Atienden operaciones de Map y Reduce Tienen slots asignados para Map y para Reduce Controla las tareas en ejecución Notifica al JobTracker acerca del estado del nodo y las tareas Si un TaskTracker falla o se produce un timeout, esa parte del trabajo ese re planifica TaskTracker Son los nodos que conforman el cluster, estos aceptan operaciones de Map, Reduce y Shuffle (el Merge que mencioné antes durante el mapping). Cada TaskTracker es configurado con un número de slots que indican el número de tareas que se pueden aceptar. Se especifica un número de slots para las tareas de Map y otro para las de Reduce, típicamente el número de slots disponibles para hacer el map es mayor que para hacer el reduce. Además, el número de slots en cada nodo no necesariamente será el mismo ya que no todas las máquinas deben tener expresamente la misma capacidad de procesamiento. El TaskTracker lleva un control de las tareas que se encuentran en ejecución y le notifica al JobTracker cuando éstas tareas terminan. Así mismo, el TaskTracker le envía al JobTracker una señal de Still Alive cada cierto tiempo para notificarle que está operativo. Estos mensajes también le informan al JobTracker acerca del número de slots disponibles para que este puede delegar nuevos trabajos en caso de ser necesario. Assign Task Assign Task TaskTracker TaskTracker Data transfer

14 Hadoop Significa Hadoop Distributed File System
HDFS Significa Hadoop Distributed File System Es el sistema de archivos por defecto de Hadoop Inspirado en GFS Estructurado en bloques (típicamente 64 MB o 128 MB por bloque) Rebalanceo de bloques Escalabilidad Disponibilidad Modelo de seguridad POSIX Los archivos individuales se parten en bloques de un tamaño fijo, generalmente estos bloques tienen un tamaño de 64 MB o 128 MB. Estos bloques se almacenan a lo largo del cluster, el cual está conformado por nodos, siendo cada uno de estos nodos una máquina con capacidad de almacenamiento de información. Los nodos objetivos que manejan cada bloque se eligen de forma aleatoria por un criterio “bloque a bloque”. Este tipo de sistema de almacenamiento de la información hace que se requiera de varias máquinas para recuperar un dato, sin embargo, esto es algo bueno ya que se soportan tamaños de archivos mucho más grandes que teniendo una única máquina, el tiempo de respuesta al momento de acceder es dato es mucho y menor, y también se tiene un alto grado de tolerancia a fallas. Rebalanceo de bloques: Esto se puede conseguir a través de la herramienta de balanceo automática incluida con Hadoop. En cuanto a seguridad, comentar que HDFS sigue el modelo POSIX de usuarios y grupos: cada fichero o directorio tiene 3 permisos asociados (lectura, escritura y ejecución), cada uno de los cuales está asociado a tres tipos de usuarios: el propietario del fichero, los usuarios que pertenecen al mismo grupo que el propietario, y el resto de usuarios del sistema. Como el HDFS no facilita el espectro completo del sistema POSIX, algunas combinaciones de bits no tendrán efecto. Por ejemplo, ningún fichero puede ser ejecutado ya que el bit +x no se puede asociar a ningún fichero (sólo a directorios). Tampoco se puede escribir en un fichero existente, aunque se puede especificar el bit +w.

15 Replicated data blocks
Hadoop HDFS - Arquitectura NameNode DataNode Client TCP/IP Networking Metadata Replicated data blocks

16 Hadoop NameNode HDFS - Arquitectura Es la pieza central del HDFS
Administra el almacenamiento de datos No almacena datos en si mismo Las operaciones de Entrada/Salida no pasan a través de él Hace de intermediario entre el cliente y los DataNodes Es un Single Point of Failure NameNode No almacena los datos en si mismo y generalmente corre en una máquina diferente dedicada exclusivamente para este fin. Se encarga de distribuir los bloques lo largo del cluster. Se encarga de replicar los bloques a lo largo del cluster. Generalmente se emplea un factor de replicación de 3 y el bloque replicado se almacena en un nodo diferente del mismo rack. Las operaciones de entrada/salida no se hacen a través del NameNode, este contiene únicamente la metadata que sirve para conocer como se distribuye el archivo de entrada en los diferentes DataNodes y bloques. Esto significa que cuando el cliente quiere hacer una operación de I/O el NameNode le responde con el identificador del bloque y la IP de NameNode para la primer copia de ese bloque. El NameNode almacena un historico de todos los cambios que ocurren en el sistema en log (EditLogs). Cuando arranca un NameNode luego de una caída, lee el estado del HDFS de un archivo de imagen llamado FSImage y luego aplica las modificaciones sobre el mismo a partir del archivo EditLogs. A continuación, escribe el nuevo estado en FSImage y arranca las operaciones normales con un archivo de cambio (EditLogs) vacío. Para solucionar el problema de Single Point of Failure se utiliza un NameNode secundario que mediante la técnica de redundancia activa mantiene una copia de las últimas versiones de FSImage y EditLogs manteniendo el tamaño del log de modificaciones dentro de parámetros aceptables. En cuanto a la disponibilidad, el sistema es altamente tolerante a fallas a excepción del problema que presenta el NameNode, es decir, que si se cae falla todo el sistema y cuando el NameNode se levante nuevamente deberá re ajustar todas las operaciones pendientes.

17 Hadoop DataNode HDFS - Arquitectura
Cientos o miles de DataNodes por cluster Organizados en racks Operaciones de Entrada/Salida ocurren sobre el DataNode Contienen información replicada Alta tolerancia a fallas En Hadoop los clusters se conforman por 1 NameNode y cientos o miles de DataNodes, estos organizados en racks donde todos son conectados a un switch. Una asunción de Hadoop es que la comunicación entre todos los DataNodes de un mismo rack es más rápida debido a que el ancho de banda es mayor. Los DataNodes son altamente tolerante a fallas debido a que los bloques de información almacenados en estos están replicados en otros DataNodes motivo por el cual en caso de que uno de los nodos se caigan, se podrá iniciar el proceso de recuperación tomando la información de los bloques restantes.

18 Hadoop JobTracker NameNode TaskTracker TaskTracker TaskTracker
HDFS - Arquitectura Master JobTracker NameNode Slave Slave Slave TaskTracker TaskTracker TaskTracker DataNode DataNode DataNode

19 Hadoop Permite interactuar con el HDFS a través de CLI
HDFS - API Permite interactuar con el HDFS a través de CLI Ej: $ hadoop fs –copyFromLocal miArchivo /miHDFSDir Algunos comandos son: cat copyFromLocal copyToLocal du dus cp rmr mkdir

20 Hadoop ¿Quiénes usan Hadoop?

21


Descargar ppt "Agenda ¿Qué es Big Data? ¿Por qué usar Big Data? ¿Quién usa Big Data? Hadoop Arquitectura de Hadoop."

Presentaciones similares


Anuncios Google