24
Trabajo Fin de Grado Grado en Ingeniería Informática TDC (Twitter Data Collection): Creación de una gran base de datos de Tweets Borja Gil Pérez Tutor: Manuel García-Herranz del Olmo Ponente: Germán Montoro Manrique Escuela Politécnica Superior, Universidad Autónoma de Madrid Julio 2014

Twitter Data Collection

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

Page 1: Twitter Data Collection

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

Page 2: Twitter Data Collection

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

Page 3: Twitter Data Collection

TDC: Creación de una gran base de datos de Tweets 3

1. Objetivos

Adquisición

Almacenamiento

Consultas

Page 4: Twitter Data Collection

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

Page 5: Twitter Data Collection

TDC: Creación de una gran base de datos de Tweets 5

Bases del Proyecto2

Page 6: Twitter Data Collection

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

Page 7: Twitter Data Collection

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

Page 8: Twitter Data Collection

TDC: Creación de una gran base de datos de Tweets 8

Arquitectura TDC

Batch Layer Serving Layer

All data

Batch view

Batch view

Page 9: Twitter Data Collection

TDC: Creación de una gran base de datos de Tweets 9

TDC:Componentes3

Page 10: Twitter Data Collection

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

Page 11: Twitter Data Collection

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

Page 12: Twitter Data Collection

TDC: Creación de una gran base de datos de Tweets 12

Map – Shuffle - Reduce

MapReduce jobMap tasksReduce tasks

(Gates, 2011)

HadoopMapReduce

Page 13: Twitter Data Collection

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

Page 14: Twitter Data Collection

TDC: Creación de una gran base de datos de Tweets 14

Arquitectura TDC

Batch Layer Serving Layer

Page 15: Twitter Data Collection

TDC: Creación de una gran base de datos de Tweets 15

TDC:Implementación4

Page 16: Twitter Data Collection

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

Page 17: Twitter Data Collection

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)

Page 18: Twitter Data Collection

TDC: Creación de una gran base de datos de Tweets 19

TDC:Casos de uso4

Page 19: Twitter Data Collection

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

Page 20: Twitter Data Collection

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)

Page 21: Twitter Data Collection

TDC: Creación de una gran base de datos de Tweets 22

Ejemplos de resultadostweets

mentioned

Page 22: Twitter Data Collection

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

Page 23: Twitter Data Collection

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/

Page 24: Twitter Data Collection

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