Date post: | 27-May-2015 |
Category: |
Data & Analytics |
Upload: | borja-gil-perez |
View: | 2,648 times |
Download: | 3 times |
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