Procesamiento y B_squeda de Gran Volumen De
-
Upload
imeralfonsoharo -
Category
Documents
-
view
224 -
download
0
Transcript of Procesamiento y B_squeda de Gran Volumen De
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
1/32
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
2/32
Big Data
Enormes cantidades de datos
(estructurados, no estructurados y
semi estructurados) que tomarademasiado tiempo y sera muy
costoso cargarlos a un base de datos
relacional para su anlisis
Se habla en trminos de
petabytes y exabytes de datos
Gigabyte = 10
9
= 1,000,000,000Terabyte = 1012= 1,000,000,000,000
Petabyte = 1015=
1,000,000,000,000,000
Exabyte = 1018=
1,000,000,000,000,000,000
De una manera rpida sin afectar la
disponibilidad de la informacin y
operacin de los sistemas.Las consultas hechas en Big Data
ayudan al anlisis y a la toma de
decisiones.
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
3/32
Adems del granv o l u m e n de
informacin, esta existe en una
gran variedad de datos que pueden
ser representados de diversas maneras
en todo el mundo, por ejemplo dedispositivos mviles, audio, video,
sistemas GPS, incontables sensores
digitales en equipos industriales,
automviles, medidores elctricos,
veletas, anemmetros, etc
Los cuales pueden medir y
comunicar el posicionamiento,
movimiento, vibracin, temperatura,
humedad y hasta los cambios
qumicos que sufre el aire, de tal
forma que las aplicaciones que
analizan estos datos requieren que
lav e l o c i d a d de respuesta sea lo
demasiado rpida para lograr
obtener la informacin correcta en el
momento preciso.Estas son las caractersticas
principales de una oportunidad
para Big Data.
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
4/32
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
5/32
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
6/32
Los datos en el clster de Hadoop son divididos en pequeas piezas
llamadasbloques y distribuidas a travs del clster; de esta manera, las
funciones map y reduce pueden ser ejecutadas en pequeossubconjuntos y esto provee de la escalabilidad necesaria para el
procesamiento de grandes volmenes.
Hadoop Distributed File System(HDFS)
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
7/32
La siguiente figura ejemplifica como los bloques de datos son escritos
hacia HDFS. Observe que cada bloque es almacenado tres veces y al
menos un bloque se almacena en un diferente rack para lograr redundancia.
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
8/32
H ad o o p M ap R ed u c e
MapReduce es el ncleo de Hadoop. El trmino MapReduce en realidad se
refiere a dos procesos separados que Hadoop ejecuta.
El proceso map, el cual toma un conjunto de datos y lo convierte en otroconjunto, 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 delproceso map y determina que nodo procesar estos datos dirigiendo la salida a
una tarea reduce en especfico.
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
9/32
La siguiente figura ejemplifica un flujo de datos en un proceso sencillo de
MapReduce.
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
10/32
H ad o o p C o m m o n
Hadoop Common Components son un conjunto de libreras que soportan
varios subproyectos de Hadoop.
Existen otros proyectos relacionados los cuales son definidos acontinuacin
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
11/32
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 cualquieraplicacin leerlo posteriormente puesto que el esquema esta definido dentro
del archivo
https://avro.apache.org/docs/1.7.7/gettingstartedjava.html
https://avro.apache.org/docs/1.7.7/gettingstartedjava.htmlhttps://avro.apache.org/docs/1.7.7/gettingstartedjava.html -
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
12/32
Cassandra
Cassandra es una base de datos no relacional distribuida y basada en un
modelo de almacenamiento de , desarrollada en Java. Permite
grandes volmenes de datos en forma distribuida.
Cassandra es utilizado por numerosas empresas conocidas como Digg,Facebook, Twitter, Cisco o RackSpace.
http://cassandra.apache.org/
http://cassandra.apache.org/http://cassandra.apache.org/ -
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
13/32
Chukwa
Diseado para la coleccin y anlisis a gran escala de "logs". Incluye un
toolkit para desplegar los resultados del anlisis y monitoreo.
https://chukwa.apache.org/docs/r0.3.0/design.html
https://chukwa.apache.org/docs/r0.3.0/design.htmlhttps://chukwa.apache.org/docs/r0.3.0/design.html -
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
14/32
lum
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.
Unsource : es bsicamente cualquier fuente de datos.
Sink : es el destino de una operacin en especfico.
Undecorator : 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.
https://flume.apache.org/
https://flume.apache.org/https://flume.apache.org/ -
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
15/32
HBaseEs 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.
Facebook utiliza HBase en su plataforma desde Noviembre del 2010
https://hbase.apache.org/
https://hbase.apache.org/https://hbase.apache.org/ -
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
16/32
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.
https://hive.apache.org/
https://hive.apache.org/https://hive.apache.org/https://hive.apache.org/https://hive.apache.org/ -
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
17/32
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 queries de alto nivel
(cuando es necesario) en queries de "bajo nivel" para distribuirlos
como procesos MapReduce.
http://www.ibm.com/developerworks/ssa/local/im/utilizando-jaql-
para-analizar-big-data/index.html
http://www.ibm.com/developerworks/ssa/local/im/utilizando-jaql-para-analizar-big-data/index.htmlhttp://www.ibm.com/developerworks/ssa/local/im/utilizando-jaql-para-analizar-big-data/index.htmlhttp://www.ibm.com/developerworks/ssa/local/im/utilizando-jaql-para-analizar-big-data/index.htmlhttp://www.ibm.com/developerworks/ssa/local/im/utilizando-jaql-para-analizar-big-data/index.htmlhttp://www.ibm.com/developerworks/ssa/local/im/utilizando-jaql-para-analizar-big-data/index.htmlhttp://www.ibm.com/developerworks/ssa/local/im/utilizando-jaql-para-analizar-big-data/index.htmlhttp://www.ibm.com/developerworks/ssa/local/im/utilizando-jaql-para-analizar-big-data/index.htmlhttp://www.ibm.com/developerworks/ssa/local/im/utilizando-jaql-para-analizar-big-data/index.htmlhttp://www.ibm.com/developerworks/ssa/local/im/utilizando-jaql-para-analizar-big-data/index.htmlhttp://www.ibm.com/developerworks/ssa/local/im/utilizando-jaql-para-analizar-big-data/index.htmlhttp://www.ibm.com/developerworks/ssa/local/im/utilizando-jaql-para-analizar-big-data/index.htmlhttp://www.ibm.com/developerworks/ssa/local/im/utilizando-jaql-para-analizar-big-data/index.htmlhttp://www.ibm.com/developerworks/ssa/local/im/utilizando-jaql-para-analizar-big-data/index.html -
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
18/32
Lucene
Es un proyecto de Apache bastante popular para realizar bsquedas sobre
textos.
Lucene provee de libreras para indexacin y bsqueda de texto. Hasido principalmente utilizado en la implementacin de motores de
bsqueda.
El concepto a nivel de arquitectura de Lucene es simple, bsicamente
los documentos (d o c u m e n t ) son dividos en campos de texto (f ields)
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.
https://lucene.apache.org/core/
https://lucene.apache.org/core/https://lucene.apache.org/core/ -
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
19/32
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
http://oozie.apache.org/
http://oozie.apache.org/http://oozie.apache.org/ -
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
20/32
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 PigL atin fue 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.
https://pig.apache.org/
https://pig.apache.org/https://pig.apache.org/ -
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
21/32
ZooKeeperZooKeeper 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 clustersean
serializados o sincronizados.
Internamente en ZooKeeper una aplicacin puede crear un archivo que sepersiste en memoria en los servidores ZooKeeper llamadoznode.
Este archivoznode puede ser actualizado por cualquier nodo en el cluster, y
cualquier nodo puede registrar que sea informado de los cambios ocurridos en
eseznode.
Un servidor puede ser configurado para "vigilar" unznode en particular. Deeste modo, las aplicaciones pueden sincronizar sus procesos a travs de un
cluster distribuido actualizando su estatus en cadaznode, el cual informar al
resto del cluster sobre el estatus correspondiente de algn nodo en especfico
https://zookeeper.apache.org/
https://zookeeper.apache.org/https://zookeeper.apache.org/ -
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
22/32
In-Genius
Software AG ha presentado una plataforma nativa in-memory que permite
obtenerinformacin en tiempo real para que las organizaciones puedan
llevar a cabo estrategias basadas en Big Data. La nueva plataforma,
llamada In-Genius de Terracotta permite descubrir valiosa informacinoculta para actuar en consecuencia, de forma que las empresas puedan
reducir significativamente el riesgo, automatizar los procesos de negocio e
implantar nuevas ofertas, productos y servicios de forma rpida. Todo ello en
tiempo real.
http://www.muycomputerpro.com/tag/software-ag/http://terracotta.org/products/in-geniushttp://terracotta.org/products/in-geniushttp://terracotta.org/products/in-geniushttp://terracotta.org/products/in-geniushttp://terracotta.org/products/in-geniushttp://terracotta.org/products/in-geniushttp://terracotta.org/products/in-geniushttp://www.muycomputerpro.com/tag/software-ag/ -
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
23/32
Bigmemory
El manejo de grandes conjuntos de
datos siempre ha sido una
preocupacin para los usuarios.
Una vez que el tamao del conjunto dedatos llega por encima del 50% de la
RAM, se considera "masiva" y,
literalmente, puede llegar a ser imposible
trabajar con una mquina estndar.
Bigmemory es un enfoque de software yhardware que facilita el almacenamiento
/ recuperacin / procesamiento de
grandes conjuntos de datos (terabytes y
ms altos).
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
24/32
Herramientas
BigMemory 4.0 de Terracotta
Con Big Memory 4.0. es
posible trasladar toda la
informacin desde lastradicionales y
lentas unidades de disco a
memoria RAM de forma
extremadamente rpida,
permitiendo realizaranlisis
de cientos de terabytes dedatos en arrays de
memoria.
BigMemory 4.0 tambin
ofrece compatibilidad
con Hadoop
http://terracotta.org/products/bigmemorymaxhttp://terracotta.org/products/bigmemorymaxhttp://terracotta.org/products/bigmemorymaxhttp://terracotta.org/products/bigmemorymaxhttp://terracotta.org/products/bigmemorymax -
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
25/32
BUSQUEDAS FULL TEXT
El manejo de grandes volmenes de texto siempre es una complicacin
para los sistemas y sobre todo para nosotros, los desarrolladores.
Cuando tenemos la necesidad de manejar campos con grandescantidades de texto empiezan nuestras complicaciones y esto se
potencia si el usuario necesita buscar una palabra, por supuesto no la
primera palabra de la frase, sino una que esta en cualquier parte de la
frase.
Aqu es donde hacen su aparicin triunfal los productos que permite hacer
ndices sobre estos campos.
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
26/32
Herramientas
Apache Lucene
Es til para cualquier aplicacin que requiera indexado y bsqueda a texto
completo. Lucene ha sido ampliamente usado por su utilidad en la
implementacin de motores de bsquedas
Zoie es el sistema de indexado y bsqueda en tiempo real de Linkedin.
Linkedin lo don como proyecto Open Source en 2008 y su sitio web sigue
utilizando, gestionando millones de bsquedas diariamente. Se trata de unamodificacin de Lucene adaptndola a los requisitos de Linkedin sin incluir
funcionalidades como sharding, tolerancia a fallos, etc. que sera necesario
aadir.
https://es.wikipedia.org/wiki/Motores_de_b%C3%BAsquedashttp://sna-projects.com/zoie/http://sna-projects.com/zoie/https://es.wikipedia.org/wiki/Motores_de_b%C3%BAsquedas -
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
27/32
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
28/32
Katta
Katta es una librera, no demasiado conocida, basada en Hadoop y Lucene.
Bsicamente realiza sharding sobre los ndices de Lucene sirviendo de este
modo un nico ndice repartido entre mltiples servidores. Tiene licenciaApache y ofrece acceso en tiempo real a los ndices adems de encargarse
automticamente del sharding y la tolerancia a fallos.
El Sharding es una tcnica que consiste
en particionar los datos de tu base de
datos horizontalmente agrupndolos dealgn modo que tenga sentido y que
permita un direccionamiento ms rpido
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
29/32
Solandra
Solandra es un motor de bsqueda en tiempo real basado
en Solry Cassandra. Cassandra es una base de datos distribuida
desarrollada por Facebook y que sigue el paradigma NoSQL. Su
arquitectura, tal y como comentan en su wiki, se basa en el modelo dedatos de BigTable (Google) y la arquitectura y modelo distribuido de
Dynamo (Amazon)
http://lucene.apache.org/solrhttp://cassandra.apache.org/http://wiki.apache.org/cassandra/http://wiki.apache.org/cassandra/http://cassandra.apache.org/http://lucene.apache.org/solr -
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
30/32
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
31/32
-
7/25/2019 Procesamiento y B_squeda de Gran Volumen De
32/32
Ver ejemplo practico