lunes, 3 de marzo de 2014

Estudio: Capítulo 1 - Conociendo Hadoop


Capítulo 1 del libro "Hadoop: The Definitive Guide, 3rd Edition".
 
En este capítulo se realiza una introducción para conocer Hadoop.
 

1 – Datos.

  
Vivimos en la era de los datos. Se habla del crecimiento en la cantidad de datos electronicos que se generan en las empresas, instituciones e internet, tanto producidos por individuos (tweets, fotos, videos...) como por máquinas (logs, sensores, transacciones..). 
 
En muchos problemas disponer de "más datos puede ser más favorable que mejores algoritmos". ¡El conocimiento es poder!
 
Datos estructurados: organizados en entidades con un formato definido y que siguen un esquema determinado (por ejemplo una tabla en una base de datos).
Datos semi-estructurados: existe algún tipo de estructura en los datos, pero estos no siguen ningún esquema predeterminado (por ejemplo una hoja de cálculo, organizada en celdas, pero cada celda puede contener cualquier tipo de datos).
Datos sin estructura: no siguen ningun tipo de estructura interna (por ejemplo un texto plano).

 
2 – Almacenado de datos y análisis.

 

 
 
Hadoop: Plataforma de almacenaje y análisis distribuida de proposito general para grandes cantidades de datos. Proporciona un sistema de análisis y de almacenamiento compartido fiable y seguro.
HDFS: Sistema de archivos seguro para almacenamiento distribuido.
MapReduce: Sistema de análisis y tratamiento de datos que proporciona un modelo de programación (basado en parejas 'key-value') que permite abstraerse de la lectura/escritura distribuida. Sistema de procesado por lotes ('batch processor'): accediendo a todo o gran parte del dataset (lectura y escritura de grandes cantidades de datos). 


3 – Comparación con otros sistemas

 

3.1 – Bases de datos relacionales.


3.2 – Procesado distribuido (HPC y Grid Computing).


3.3 – Volunteer Computing.


4 – Historia de Hadoop.


5 – Ecosistema de Hadoop

  • HDFS: Sistema de archivos distribuido.
  • MapReduce: Modelo de procesado de datos distribuido.
  • Pig: Lenguaje de flujo de datos con diversas estructuras y transformaciones de datos (se transforman a procesos MapReduce). 
  • Hive: Data warehouse distribuido. Hive administra datos almacenados en HDFS y proporciona un lenguaje de consulta y tratamiento basandose en SQL (se traducen en trabajos MapReduce).
  • HBase: Base de datos distribuida oriendada a columnas. Utiliza HDFS para el almacenado de datos y soporta computación tanto por lotes como para consultas puntuales (lecturas aleatorias).
  • ZooKeeper: un servicio de coordinación de procesos distribuidos. Proporciona funciones primitivas generales (bajo el entorno distribuido Hadoop) que pueden ser usadas para crear aplicaciones distribuidas.
  • Sqoop: herramienta de transferencia de grandes cantidades de datos entre almacenes de datos estructurados (como por ejemplo una base de datos relacional) y HDFS.
  • Oozie: servicio para programar y lanzar diferentes flujos de trabajo en Hadoop (trabajos MapReduce, Pig, Hive y Sqoop).
  • Flume: servicio distribuido para recolectar, agregar y mover, de forma fiable y eficiente, grandes cantidades de streaming de datos en HDFS.
  • Mahout: proporciona una librería de algoritmos de minería de datos y machine-learning implementados sobre Hadoop (usando el paradigma de programación MapReduce), como por ejemplo algoritmos de filtrado colaborativo, clustering, clasificación o mineria de items frecuentes en datasets.

Integración de R con Hadoop: existen diferentes proyectos orientados a integrar el lenguaje de programación estadística R con Hadoop:
  • R + Streaming: Se utiliza para ejecutar scritps de R utilizando la tecnología MapReduce de Hadoop.
  • Rhipe: es un proyecto de código abierto que permite integrar MapReduce con R en el cliente.
  • Rhadoop: Proporciona una wrapper sobre R para facilitar la integación con MapReduce.

 
6 – Versiones de Hadoop.

 
Existen diferentes diferentes versiones activas de Hadoop.
  • 1.2.X - current stable version, 1.2 release
  • 2.2.X - current stable 2.x version
  • 2.3.X - current 2.x version
  • 0.23.X - similar to 2.X.X but missing NN HA.

http://hadoop.apache.org/releases.html

No hay comentarios:

Publicar un comentario