Procesamiento y B_squeda de Gran Volumen De

download Procesamiento y B_squeda de Gran Volumen De

of 32

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