2. Motivación y Antecedentes de Hadoop
• Alto volúmenes de datos
• Variedad de formatos
• Alta velocidad de generación de datos
• Sistemas de bases de datos distribuidos
• Programación funcional
3. Historia
• Creador: Doug Cutting
• 2002 Nutch
• 2004 GFS y MapReduce
• 2006 – 2008 Hadoop (HDFS y MapReduce)
• Actualidad: CloudEra y HortonWorks (Hive, Pig, HBase, etc)
4. Hadoop
• Proyecto Open Source
• Procesamiento de grandes cantidades de datos
• Computación distribuida
• Escalable, fiable, eficiente y económico
5. HDFS
• Fallos en el hardware y uso de heartbeats
• Millones de archivos y espacio de nombres único
• Portabilidad
• Escribir una vez, leer varias
• Archivos divididos en bloques y replicación.
• Acceso directo a los datos y validación.
Problemas del procesamiento Big Data
Se guardan grandes volúmenes de datos de distintos formatos que son generados a una alta velocidad.
En específico Bases de datos distribuídas.
programación funcional relacionada con el álgebra de monoide
Nutch es un proyecto open source de motor de búsqueda, problemas con escalabilidad en despliegue
En el 2004 Google presenta si sistema de archivos distribuídos y la primera propuesta de programación mapReduce para la comunidad open source
Estas tecnologías de Google son adoptadas por Nutch
En 2006 se crea el proyecto open source Hadoop y se consolida en 2008 con la creación de su propio sistema de archivos distribuídos e implementación de MapReduce.
Servicios profesionales y herramientas de gestión.
Actualidad, ecosistema Hadoop
Características de software y proyecto.
Escalable hasta
Supone que el hardware falla, redundancia, DataNodes send heartbeat to the NameNode – Once every 3 seconds para detectar fallos
Altos volúmenes de datos , petabytes de información
Correr en cualquier plataforma
Sólo se puede añadir datos a los archivos ya existentes, no borrar.
En el futuro no se podrán modificar los archivos
Normalmente en 64MB ó 128MB
Varias réplicas en diferentes DataNodes: normalmente 3 , Una vez el NameNode nos ha indicado donde están los datos el cliente accede directamente a los mismos
• Use Checksums to validate data
– Use CRC32 (comprobación de redundancia cíclica)
• File Creation
– Client computes checksum per 512 byte
– DataNode stores the checksum
• File access
– Client retrieves the data and checksum from
DataNode
– If Validation fails, Client tries other replicas
Procesamien en paralelo y en tiempo real.
El cliente manda la configuración (el nombre de las funciones map y reduce), los directorios de entrada y salida y las clases java que se utilizarán para procesar los datos.
Le devuelve un JobID al Cliente.
Y empieza a asignar tareas de tipo map a los TaskTrackers que se muestran disponibles (modelo pull).
En función de proximidad de los datos: mismo nodo, mismo rack, mismo switch de red.
Extrae y divide el INPUT a partir de RecordReader e InputFormat.
Entonces se invoca la función MAP que emitirá conjuntos de tipo key/value.
En ocasiones en las fases de map() se puedne producir reducciones parciales así como ordenaciones parciales para favorecer el aprovechamiento de los buffers
Cuando varios tasktrackers han acabado sus fases de mapeo, el JobTracker empezará a asignar tareas reduce() (modelo pull de nuevo).
Cuando varios tasktrackers han acabado sus fases de mapeo, el JobTracker empezará a asignar tareas reduce() (modelo pull de nuevo).
Cuando todas las tareas de MAP se han completado el JobTracker les indicará a todos los TaskTrackers que procedan con la fase final de REDUCE.
Al final se escribirá en el HDFS los archivos de salida previo formateo
Word Count in SparkPython
Se lee desde un fichero en el HDFS y se escribe hacia un fichero en el HDFS.
YARN es la última versión del MapReduce
permite procesamiento batch, scriptings, SQL y no Sql, en streming, en memoria
Hive
Data Warehouse que provee una interfaz SQL
HBase
base de datos orientada a columnas.
ZooKeeper Coordinacion de los cluster
HBase, base de datos no-Sql y de consulta en tiempo real
Hive orientado a batch, procesamiento tipo SQL
Servicios profesionales y herramientas de gestión y administración : CloudEra y HortonWorks
Comparacion entre Sistemas de base de datos relacionales y Map-reduce
propietario, open sourse
caro, barato
datos estructurados, datos no estructurados
semántica relacional, soporte a semántica relacional de modo indirecto
soporte indirecto a estructuras de datos complejos, soporte profundo a estructuras de datos complejos
soporte a procesamiento transaccional. soporte a iteraciones
Formas de relacionar Hadoop y sistemas de gestión de bases de datos relacionales para poder utilizar herramientas de la inteligencia de negocio.
raw data exists in HDFS, es necesario ETL
Se pueden realizar distintas consultas y obtener varias vistas
el procesamiento es en paralelo y los datos se encuentran distribuidos, pueden ser estructurado o no estructurados.
Hive permite definir tablas, datos estructurados
realiza consultas SQL que se transforman en operaciones de tipo MapReduce
consultar o obtener una vista de los hashtags que están el los tweets.