Upload
borja-gil-perez
View
2.656
Download
3
Embed Size (px)
DESCRIPTION
La motivación de este proyecto es crear una base de datos flexible para adquirir, almacenar, analizar y consultar tweets. Se debe llevar a cabo un trabajo de investigación sobre cuáles son las tecnologías usadas para este propósito y diseñar una arquitectura software acorde a ellas. Las investigaciones llevarán hacia el auge del Big Data, sistemas que manipulan grandes conjuntos de datos. Una vez diseñada una arquitectura adecuada se procederá a comparar y elegir componentes entre el abanico software que forma todo este ecosistema. Unir todos ellos para un funcionamiento correcto y su uso adecuado es el gran reto de Twitter Data Collection, así como proporcionar ejemplos de uso relevantes. En este documento se expondrán: • Los motivos que llevaron al Big Data. • La gran variedad de tecnologías usadas para lidiar con grandes volúmenes de datos. • Conocer las distintas APIs de Twitter. • Averiguar cuáles son los componentes que sirven para cada capa de la arquitectura software diseñada y su funcionamiento. • Pasos necesarios para instalar un cluster con un único nodo asi como la forma de adquirir, analizar y consultar tweets con cada componente correspondiente. • La manera de instalar un cluster con múltiples nodos aprovechando los pasos realizados para el de uno y las modificaciones necesarias para adaptar los scripts anteriormente desarrollados. Este proyecto no solo expone cómo instalar un entorno Hadoop de una manera sencilla, también muestra un ejemplo de cómo tratar con la cantidad ingente de información que logra desbordar a las bases de datos relacionales. Repositorio disponible en www.github.com/borjagilperez/twitter-data-collection
Citation preview
Trabajo Fin de GradoGrado en Ingeniería Informática
TDC (Twitter Data Collection): Creación de una gran base de datos de Tweets
Borja Gil PérezTutor: Manuel García-Herranz del OlmoPonente: Germán Montoro Manrique
Escuela Politécnica Superior, Universidad Autónoma de MadridJulio 2014
TDC: Creación de una gran base de datos de Tweets 2
1. IntroducciónMotivaciónCapturar tweets para análisis científico
Continuar con el trabajo de AmILab
•Hacerlo escalable•Distribuible• Fusionando lo ya existente
TDC: Creación de una gran base de datos de Tweets 3
1. Objetivos
Adquisición
Almacenamiento
Consultas
TDC: Creación de una gran base de datos de Tweets 4
Sección 2 Bases del proyecto
Sección 3 TDC: componentes
Sección 4 TDC: implementación y casos de uso
Sección 5 Conclusiones y trabajo futuro
Referencias
TDC: Creación de una gran base de datos de Tweets 5
Bases del Proyecto2
TDC: Creación de una gran base de datos de Tweets 6
Twitter ¿Cómo obtener los datos?
REST APIConsultas de tweets pasados
(hasta 10 días)
Streaming APIMayor rate limitingMenos consultas
TDC: Creación de una gran base de datos de Tweets 7
Arquitectura Lambda(Marz & Warren, A new paradigm for Big Data, 2012)
Grandes volúmenes de datosañadidos continuamente
Adquisición
Almacenamiento
Consultas
Real-time
TDC: Creación de una gran base de datos de Tweets 8
Arquitectura TDC
Batch Layer Serving Layer
All data
Batch view
Batch view
TDC: Creación de una gran base de datos de Tweets 9
TDC:Componentes3
TDC: Creación de una gran base de datos de Tweets 10
Hadoop
Tamaño: petabytes
Procesado: por lotes
Actualizaciones: escribe una vez, lee muchas veces
Estructura: Base de datos semi-estructurada
Control del programador: operación en alto nivel
Escalado lineal: independiente del tamaño de datos y del cluster
Procesamiento distribuido Grandes cantidades de datos
TDC: Creación de una gran base de datos de Tweets 11
procesamiento distribuido (MapReduce) a través de clusters de computadoras (HDFS)
HDFSArchivos muy grandesAcceso a datos constante
NameNode (servidor maestro)DataNodes (trabajadores)
MapReducePoca eficiencia con archivos diminutos.
MapReduce jobJobtrackerTasktrackers
Hadoop Batch view
Batch Layer Serving Layer
Batch view
TDC: Creación de una gran base de datos de Tweets 12
Map – Shuffle - Reduce
MapReduce jobMap tasksReduce tasks
(Gates, 2011)
HadoopMapReduce
TDC: Creación de una gran base de datos de Tweets 13
HBaseBase de datos columnar
Tablas dedicadas para análisis específicos extraídos de Hadoop
Ventajas:Lectura aleatoria de datos en tiempo
razonable
Inconvenientes:Joins costosos -> DenormalizaciónElegir bien las rowkeys (eliminan
duplicados)(Dimiduk & Khurana, 2013)
Batch Layer Serving Layer
TDC: Creación de una gran base de datos de Tweets 14
Arquitectura TDC
Batch Layer Serving Layer
TDC: Creación de una gran base de datos de Tweets 15
TDC:Implementación4
TDC: Creación de una gran base de datos de Tweets 16
TwitterDataCollectionMaven:
gestión y construcción de proyectos Javaresuelve dependencias
FlumeTwitterSource PigTwitterUDFs HBaseTwitterTables
Toma de tweets:1. Geolocalizados
2. Contiene palabras clave3. (1) OR (2)
Análisis:1. UniformDate
2. Related3. Coordinates
4. Hashtags5. UserMentions
6. MD5gen
Creación de tablas (vacías):1. Tweets
2. Menciones3. Mencionados por
TDC: Creación de una gran base de datos de Tweets 18
Cluster multi-nodo
Formado por la unión de varios cluster mono-nodo.• Master:
nodo maestro ytambién esclavo• Slave: nodo esclavo
(Noll, Running Hadoop on Ubuntu Linux - Multi-Node Cluster, 2011)
TDC: Creación de una gran base de datos de Tweets 19
TDC:Casos de uso4
TDC: Creación de una gran base de datos de Tweets 20
Recolectar informaciónTwitter4J + Flume
Tweets…• …geolocalizadosswLngLat = -9.299269, 35.999882neLngLat = 4.327812, 43.79142• …que contienen alguna palabra
clavekeywords = @FIFAcom, independencia, #MundialBrasil, #Mundial2014, #Brasil2014, #MundialBrasil2014, Mundial, fútbol
Batch Layer Serving Layer
TDC: Creación de una gran base de datos de Tweets 21
Flujo de análisis y consultasPig + HBase + Hive
JSON
tweets
relationships
mentions
mentioned
tweets
mentions
mentioned
tweets
mentions
mentioned
@borjagilperez, 2014, 07, 13, @FIFAcom organiza #MundialBrasil
@FIFAcom, @borjagilperez
@borjagilperez, @FIFAcom
MD5(id_tweet)
MD5(idB)MD5(idA)
MD5(idA)MD5(idB)
TDC: Creación de una gran base de datos de Tweets 22
Ejemplos de resultadostweets
mentioned
TDC: Creación de una gran base de datos de Tweets 23
Conclusiones y trabajo futuro
Sistema extensible (datos, fuentes y análisis)Para el usuario final no supone un cambio de paradigma en cuanto al acceso a los datos (SQL)Se puede mejorar el rendimientoSe puede crear un API personalizada (e.g. PHP): Hive o HueAñadir compresiónAprendizaje automático y minería de datos (Mahout)Mezclar Streaming API y REST API
TDC: Creación de una gran base de datos de Tweets 24
Referencias por orden de aparición
• Marz, N., & Warren, J. (2012). A new paradigm for Big Data. Retrieved from Big Data. Principles and best practices of scalable realtime data systems.: www.manning.com/marz/BDmeapch1.pdf• Gates, A. (2011). Programming Pig. Sebastopol, CA: O'Reilly Media, Inc.• Dimiduk, N., & Khurana, A. (2013). HBase in action. New York: Manning.• Noll, M. G. (2011, 07 17). Running Hadoop on Ubuntu Linux - Multi-Node
Cluster. Retrieved from Michael G. Noll: http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/
TDC: Creación de una gran base de datos de Tweets 25
TDC (Twitter Data Collection):Creación de una gran base de datos de Tweets
Repositorio: www.github.com/borjagilperez/twitter-data-collectionBorja Gil Pérez: www.linkedin.com/in/borjagilperez
¿Preguntas?
Y gira todo en torno a la estancia mientras se danza