t001 - Big Data (Oficial)
t001 - Big Data (Oficial)
t001 - Big Data (Oficial)
Trabajo Monogrfico
Agosto de 2017
Iquitos Per
BIG DATA - MACRODATOS
2
DEDICATORIA
3
NDICE
I. PORTADA ............................................................................................... 1
IV. NDICE..................................................................................................... 4
V. INTRODUCCIN ..................................................................................... 5
4
INTRODUCCIN
5
CAPTULOS
Captulo I: Definicin
6
Captulo II: Tipos de Datos de Big Data
1.- Web and Social Media: Incluye contenido web e informacin que es obtenida
de las redes sociales como Facebook, Twitter, LinkedIn, etc., blogs.
7
Capitulo III: Componentes de una Plataforma Big Data
8
Hadoop MapReduce:
MapReduce es el ncleo de Hadoop. El trmino MapReduce en realidad se
refiere a dos procesos separados que Hadoop ejecuta. El primer proceso map,
el cual toma un conjunto de datos y lo convierte en otro conjunto, donde los
elementos individuales son separados en tuplas (pares de llave/valor). El
proceso reduce obtiene la salida de map como datos de entrada y combina las
tuplas en un conjunto ms pequeo de las mismas. Una fase intermedia es la
denominada Shuffle la cual obtiene las tuplas del proceso map y determina que
nodo procesar estos datos dirigiendo la salida a una tarea reduce en especfico.
La siguiente figura ejemplifica un flujo de datos en un proceso sencillo de
MapReduce.
Hadoop Common:
Hadoop Common Components son un conjunto de libreras que soportan varios
subproyectos de Hadoop. Adems de estos tres componentes principales de
Hadoop, existen otros proyectos relacionados los cuales son definidos a
continuacin:
Avro
Es un proyecto de Apache que provee servicios de serializacin. Cuando se
guardan datos en un archivo, el esquema que define ese archivo es guardado
dentro del mismo; de este modo es ms sencillo para cualquier aplicacin leerlo
posteriormente puesto que el esquema est definido dentro del archivo.
9
Cassandra
Cassandra es una base de datos no relacional distribuida y basada en un modelo
de almacenamiento de <clave-valor>, desarrollada en Java. Permite grandes
volmenes de datos en forma distribuida. Twitter es una de las empresas que
utiliza Cassandra dentro de su plataforma.
Chukwa
Diseado para la coleccin y anlisis a gran escala de "logs". Incluye un toolkit
para desplegar los resultados del anlisis y monitoreo.
Flume
Tal como su nombre lo indica, su tarea principal es dirigir los datos de una fuente
hacia alguna otra localidad, en este caso hacia el ambiente de Hadoop. Existen
tres entidades principales: sources, decorators y sinks. Un source es
bsicamente cualquier fuente de datos, sink es el destino de una operacin en
especfico y un decorator es una operacin dentro del flujo de datos que
transforma esa informacin de alguna manera, como por ejemplo comprimir o
descomprimir los datos o alguna otra operacin en particular sobre los mismos.
HBase
Es una base de datos columnar (column-oriented database) que se ejecuta en
HDFS. HBase no soporta SQL, de hecho, HBase no es una base de datos
relacional. Cada tabla contiene filas y columnas como una base de datos
relacional. HBase permite que muchos atributos sean agrupados
llamndolos familias de columnas, de tal manera que los elementos de una
familia de columnas son almacenados en un solo conjunto. Eso es distinto a las
bases de datos relacionales orientadas a filas, donde todas las columnas de una
fila dada son almacenadas en conjunto. Facebook utiliza HBase en su plataforma
desde noviembre del 2010.
Hive
Es una infraestructura de data warehouse que facilita administrar grandes
conjuntos de datos que se encuentran almacenados en un ambiente distribuido.
Hive tiene definido un lenguaje similar a SQL llamado Hive Query
Language(HQL), estas sentencias HQL son separadas por un servicio de Hive y
son enviadas a procesos MapReduce ejecutados en el cluster de Hadoop.
10
El siguiente es un ejemplo en HQL para crear una tabla, cargar datos y obtener
informacin de la tabla utilizando Hive:
Jaql
Fue donado por IBM a la comunidad de software libre. Query Language for
Javascript Object Notation (JSON) es un lenguaje funcional y declarativo que
permite la explotacin de datos en formato JSON diseado para procesar
grandes volmenes de informacin. Para explotar el paralelismo, Jaql reescribe
los query de alto nivel (cuando es necesario) en query de "bajo nivel" para
distribuirlos como procesos MapReduce. Internamente el motor de Jaql
transforma el query en procesos map y reduce para reducir el tiempo de
desarrollo asociado en analizar los datos en Hadoop. Jaql posee de una
infraestructura flexible para administrar y analizar datos semiestructurados como
XML, archivos CSV, archivos planos, datos relacionales, etc.
Lucene
Es un proyecto de Apache bastante popular para realizar bsquedas sobre
textos. Lucene provee de libreras para indexacin y bsqueda de texto. Ha sido
principalmente utilizado en la implementacin de motores de bsqueda (aunque
hay que considerar que no tiene funciones de "crawling" ni anlisis de
documentos HTML ya incorporadas). El concepto a nivel de arquitectura de
Lucene es simple, bsicamente los documentos (document) son dividos en
campos de texto (fields) y se genera un ndice sobre estos campos de texto. La
indexacin es el componente clave de Lucene, lo que le permite realizar
bsquedas rpidamente independientemente del formato del archivo, ya sean
PDFs, documentos HTML, etc.
11
Oozie
Como pudo haber notado, existen varios procesos que son ejecutados en
distintos momentos los cuales necesitan ser orquestados para satisfacer las
necesidades de tan complejo anlisis de informacin.
Oozie es un proyecto de cdigo abierto que simplifica los flujos de trabajo y la
coordinacin entre cada uno de los procesos.
Permite que el usuario pueda definir acciones y las dependencias entre dichas
acciones.
Un flujo de trabajo en Oozie es definido mediante un grafo acclico
llamado Directed Acyclical Graph (DAG), y es acclico puesto que no permite
ciclos en el grafo; es decir, solo hay un punto de entrada y de salida y todas las
tareas y dependencias parten del punto inicial al punto final sin puntos de retorno.
Un ejemplo de un flujo de trabajo en Oozie se representa de la siguiente manera:
Pig
Inicialmente desarrollado por Yahoo para permitir a los usuarios de Hadoop
enfocarse ms en analizar todos los conjuntos de datos y dedicar menos tiempo
en construir los programas MapReduce.
Tal como su nombre lo indica al igual que cualquier cerdo que come cualquier
cosa, el lenguaje PigLatinfue diseado para manejar cualquier tipo de dato
y Pig es el ambiente de ejecucin donde estos programas son ejecutados, de
manera muy similar a la relacin entre la mquina virtual de Java (JVM) y una
aplicacin Java.
12
ZooKeeper
ZooKeeper es otro proyecto de cdigo abierto de Apache que provee de una
infraestructura centralizada y de servicios que pueden ser utilizados por
aplicaciones para asegurarse de que los procesos a travs de un cluster sean
serializados o sincronizados.
Internamente en ZooKeeper una aplicacin puede crear un archivo que se
persiste en memoria en los servidores ZooKeeper llamado znode. Este
archivo znode puede ser actualizado por cualquier nodo en el cluster, y cualquier
nodo puede registrar que sea informado de los cambios ocurridos en ese znode;
es decir, un servidor puede ser configurado para "vigilar" un znode en particular.
De este modo, las aplicaciones pueden sincronizar sus procesos a travs de un
cluster distribuido actualizando su estatus en cada znode, el cual informar al
resto del cluster sobre el estatus correspondiente de algn nodo en especfico.
Como podr observar, ms all de Hadoop, una plataforma de Big Data consiste
de todo un ecosistema de proyectos que en conjunto permiten simplificar,
administrar, coordinar y analizar grandes volmenes de informacin.
13
Captulo IV: Procesos Tcnicos
Captura:
De dnde provienen todos estos datos? Los fabricamos directa e
indirectamente segundo tras segundo. Un iPhone hoy en da tiene ms
capacidad de cmputo que la NASA cuando el hombre lleg a la luna por lo que
la cantidad de datos generados por persona y en unidad de tiempo es muy
grande. Catalogamos la procedencia de los datos segn las siguientes
categoras:
14
Mquina a mquina (machine to machine, M2M): son las tecnologas que
comparten datos con dispositivos: medidores, sensores de temperatura, de
luz, de altura, de presin, de sonido que transforman las magnitudes fsicas
o qumicas y las convierten en datos. Existen desde hace dcadas, pero la
llegada de las comunicaciones inalmbricas (Wi-Fi, Bluetooth, RFID) ha
revolucionado el mundo de los sensores. Algunos ejemplos son los GPS en
la automocin o los sensores de signos vitales en la medicina.
Biomtrica: son el conjunto de datos que provienen de la seguridad, defensa
y servicios de inteligencia. Son cantidades de datos generados por lectores
biomtricos como escneres de retina, escneres de huellas digitales, o
lectores de cadenas de ADN. El propsito de estos datos es proporcionar
mecanismos de seguridad y suelen estar custodiadas por los ministerios de
defensa y departamentos de inteligencia. Un ejemplo de aplicacin es el
cruce de ADN entre una muestra de un crimen y una muestra en
nuestra base de datos.
Transformacin:
Una vez encontradas las fuentes de los datos necesarios, muy posiblemente
dispongamos de un sinfn de tablas de origen sin estar relacionadas. El siguiente
objetivo consta en hacer que los datos se recojan en un mismo lugar y darles un
formato.
Almacenamiento NoSQL:
El trmino NoSQL se refiere a Not Only SQL y son sistemas de almacenamiento
que no cumplen con el esquema entidad-relacin. Proveen un sistema de
almacenamiento mucho ms flexible y concurrente y permiten manipular
grandes cantidades de informacin de manera mucho ms rpida que las bases
de datos relacionales.
CouchDB o MongoDB son quiz las ms conocidas. Hay que hacer mencin
especial a MapReduce, una tecnologa de Google inicialmente diseada para su
algoritmo PageRank, que permite seleccionar un subconjunto de datos,
agruparlos o reducirlos y cargarlos en otra coleccin, y a Hadoop que es una
tecnologa de Apache diseada para almacenar y procesar grandes cantidades
de datos.
16
Su mayor uso se contempla en casos de relacionar grandes cantidades
de datos que pueden ser muy variables. Por ejemplo, los nodos pueden
contener objetos, variables y atributos diferentes en unos y los otros. Las
operaciones de join se sustituyen por recorridos a travs del grafo, y se
guarda una lista de adyacencias entre los nodos. Encontramos un
ejemplo en las redes sociales: en Facebook cada nodo se considera
un usuario, que puede tener aristas de amistad con otros usuarios,
o aristas de publicacin con nodos de contenidos. Soluciones
como Neo4J y GraphDB son las ms conocidas dentro de las bases de
datos en grafo.
Anlisis de datos:
Teniendo los datos necesarios almacenados segn diferentes tecnologas
de almacenamiento, nos daremos cuenta que necesitaremos diferentes tcnicas
de anlisis de datos como las siguientes:
17
Engloba el conjunto de tcnicas que combina mtodos estadsticos y
de aprendizaje automtico con almacenamiento en bases de datos. Est
estrechamente relacionada con los modelos utilizados para descubrir
patrones en grandes cantidades de datos.
Visualizacin de datos
Tal y como el Instituto Nacional de Estadstica dice en sus tutoriales, una imagen
vale ms que mil palabras, o que mil datos. Nuestra mente agradecer mucho
ms la visualizacin amigable de unos resultados estadsticos en grficos o
mapas que no en tablas con nmeros y conclusiones.
18
En los macrodatos se llega un paso ms all: parafraseando a Edward Tufte,
uno de los expertos en visualizacin de datos ms reconocidos a nivel mundial
"El mundo es complejo, dinmico, multidimensional, el papel es esttico y plano.
Cmo vamos a representar la rica experiencia visual del mundo en la mera
planicie?.
Mondrian es una plataforma que permite visualizar la informacin a travs de los
anlisis llevados a cabo sobre los datos que disponemos. Con esta plataforma
se intenta llegar a un pblico ms concreto, y una utilidad ms acotada como
un Cuadro de Mando Integral de una organizacin. Por otro lado,
las infografas se han vuelto un fenmeno viral, donde se recogen los resultados
de los diferentes anlisis sobre nuestros datos, y son un material atractivo,
entretenido y simplificado para audiencias masivas.
19
Captulo V: Tecnologas del Big Data
Existen muchsimas herramientas para tratar con big data. Algunos ejemplos
incluyen Hadoop, NoSQL, Cassandra, Inteligencia empresarial, Aprendizaje
automtico y MapReduce. Estas herramientas tratan con algunos de los tres
tipos de big data.
20
Captulo VI: Aplicaciones Tcnicas
21
OPTIMIZANDO EL RENDIMIENTO DE MQUINAS Y DISPOSITIVOS
El anlisis de big data est ayudando a mquinas y dispositivos a ser ms
inteligentes y autnomos. Un ejemplo que ya es una realidad, el coche
autopilotado de Google. Los coches que usan para el proyecto estn equipados
con cmaras, GPS, conexin a internet, y un abanico de computadoras y
sensores que permiten al vehculo circular de forma segura por la va pblica sin
necesidad de intervencin humana. Tambin se usan herramientas de anlisis
de big data para optimizar las redes de energa a partir de datos de los medidores
inteligentes. podemos tambin aprovechar estas tecnologas para optimizar el
rendimiento de servidores y datawarehouses.
22
CONCLUSIN
El uso de Big Data ha ayudado a los investigadores a descubrir cosas que les
podran haber tomado aos en descubrir por si mismos sin el uso de estas
herramientas, debido a la velocidad del anlisis, es posible que el analista de
datos pueda cambiar sus ideas basndose en el resultado obtenido y retrabajar
el procedimiento una y otra vez hasta encontrar el verdadero valor al que se est
tratando de llegar.
Como se pudo notar en el presente artculo, implementar una solucin alrededor
de Big Data implica de la integracin de diversos componentes y proyectos que
en conjunto forman el ecosistema necesario para analizar grandes cantidades
de datos. Sin una plataforma de Big Data se necesitara que desarrollar
adicionalmente cdigo que permita administrar cada uno de esos componentes
como, por ejemplo: manejo de eventos, conectividad, alta disponibilidad,
seguridad, optimizacin y desempeo, depuracin, monitoreo, administracin de
las aplicaciones, SQL y scripts personalizados.
23
BIBLIOGRAFA
24