Practica 1 (presentacion en ppt)

Download Report

Transcript Practica 1 (presentacion en ppt)

Programacion Web
Practica 1
Estudio de la aplicación
distribuida: Apache Hadoop
Qué es Apache Hadoop
•
Apache Hadoop es un framework de software que soporta aplicaciones distribuidas bajo
una licencia libre.
•
Permite a las aplicaciones trabajar con miles de nodos y petabytes de datos.
•
Objetivo: analizar y gestionar resultados extraídos de ficheros de gran tamaño (petabytes) de
manera rápida.
•
Hadoop fue creado por Doug Cutting.
•
•
•
•
Ventajas:
Bajo coste
Facilidad de uso
Tolerancia a fallos
Conceptos clave
• Replicación:
la alta disponibilidad se debe a la replicación. Cada bloque de archivo se replica a otros
nodos en función de “factor de replicación”. (1,2,3)
• Arquitectura: hadoop se base en la arquitectura maestro esclavo. Un clúster hadoop tiene un solo
nodo maestro y varios esclavos.
• Nodo master: se encarga de almacenar el metadato de los nodos esclavos dentro del rack del que
forma parte.
• Nodo esclavo: almacena la información que en un momento dado es procesada por el nodo master
• Rack : se denomina rack a la combinacion de “nodos de datos”. Un rack puede tener como máximo 40
nodos master.
• Proceso cliente: proceso que se lanza a peticion de un nodo master ya sea para almacenamiento de
archivo nuevo o recuperación de un archivo en el clúster Hadoop.
Componentes de software de hadoop
• HDFS
• MAP REDUCE
HDFS
• Sistema de archivos distribuido, escalable y portátil escrito en Java.
• Permite conectar nodos (máquinas de bajo coste a nivel de hardware)
formando clusters.
• Los cálculos se realizan en la máquina donde residen los datos en lugar de
mover los datos donde se realiza la petición.
• Tanto los nodos master o nodo de metadatos como esclavo o nodo de
datos son componentes software.
HDFS(2)
• Un cluster esta compuesto por un nodo master (regula el namespace y las
peticones)y varios esclavos (almacenan la informacion)
• El protocolo de comunicación es TCP/IP. HDFS se conecta a un puerto
TCP abierto en el namenode, y luego se comunica con el namenode usando
el protocolo RPC(Remote Procedure Call).
• Para evitar los fallos se replica la información por cercanía de nodos. El
factor de replicación es un parámetro configurable.
Ventajas de HDFS
• Diseñado para almacenar ficheros muy grandes en commodity
hardware (máquinas comunes y corrientes a nivel de
hardware)
• Fiabilidad mediante replicación
• Tolerancia a fallos
• Procesamiento de los datos donde están almacenados en lugar
de moverlos
Inconvenientes de HDFS
•
•
•
•
Elevada latencia
Poco eficiente con muchos ficheros pequeños
Modificaciones siempre al final de los ficheros
No permite múltiples writers
MAP REDUCE
•
•
•
•
•
•
Un modelo de programación y una implementación asociada para
solucionar problemas de computación paralela sobre datos de gran
escala.
Consta de dos fases: Map y Reduce.
Las funciones map y reduce se aplican sobre pares de datos(clave
,valor) y devuelve una lista de pares (clave2,valor2).
Esta operación se realiza en paralelo para cada par de datos de
entrada
Luego se agrupan todos los pares generados creando una lista por
cada una de las claves generadas.
Reduce se realiza en paralelo tomando como entrada cada lista de
las obtenidas en el Map y produciendo una colección de valores.
Ventajas e inconvenientes Map Reduce
Ventajas:
• Aísla la aplicación de los detalles de la ejecución de un
programa distribuido, tales como los problemas de
distribución de datos, planificación y tolerancia a las fallas
• La lógica de procesamiento es la que se mueve a donde
están los datos.
Inconvenientes:
• La flexibilidad del modelo clave/valor, puesto que es
demasiado restrictivo y por ello dificulta el desarrollo.
• Dificultad excesiva al hacer un reduce join y otros cálculos
con fuentes de datos heterogéneas.