Trabajo Fin de Grado
Grado en Ingeniería Informática
TDC (Twitter Data Collection):
Creación de una gran base de datos de ...
1. Introducción
Motivación
Capturar tweets para análisis científico
Continuar con el trabajo de AmILab
•Hacerlo escalable
...
1. Objetivos
Adquisición
TDC: Creación de una gran base de datos de Tweets 2
Almacenamiento
Consultas
Sección 2 Bases del proyecto
Sección 3 TDC: componentes
Sección 4 TDC: implementación y casos de uso
Sección 5 Conclusione...
Bases del Proyecto
TDC: Creación de una gran base de datos de Tweets 4
2
Twitter ¿Cómo obtener los datos?
REST API
Consultas de tweets pasados
(hasta 10 días)
Streaming API
Mayor rate limiting
Me...
Arquitectura Lambda
(Marz & Warren, A new paradigm for Big Data, 2012)
TDC: Creación de una gran base de datos de Tweets 6...
Arquitectura TDC
TDC: Creación de una gran base de datos de Tweets 7
Batch Layer Serving Layer
All data
Batch view
Batch v...
TDC:
Componentes
TDC: Creación de una gran base de datos de Tweets 8
3
Hadoop
Tamaño: petabytes
Procesado: por lotes
Actualizaciones: escribe una vez, lee muchas veces
Estructura: Base de datos...
procesamiento distribuido (MapReduce)
a través de clusters de computadoras (HDFS)
TDC: Creación de una gran base de datos ...
Map – Shuffle - Reduce
MapReduce job
Map tasks
Reduce tasks
TDC: Creación de una gran base de datos de Tweets 11
(Gates, 2...
HBase
Base de datos columnar
Tablas dedicadas para análisis
específicos extraídos de Hadoop
Ventajas:
Lectura aleatoria de...
Arquitectura TDC
TDC: Creación de una gran base de datos de Tweets 13
Batch Layer Serving Layer
TDC:
Implementación
TDC: Creación de una gran base de datos de Tweets 14
4
TwitterDataCollection
Maven:
gestión y construcción de proyectos Java
resuelve dependencias
TDC: Creación de una gran base...
Cluster multi-nodo
Formado por la unión de
varios cluster mono-nodo.
• Master:
nodo maestro y
también esclavo
• Slave: nod...
TDC:
Casos de uso
TDC: Creación de una gran base de datos de Tweets 18
4
Tweets…
• …geolocalizados
swLngLat = -9.299269, 35.999882
neLngLat = 4.327812, 43.79142
• …que contienen alguna palabra
cl...
Flujo de análisis y consultas
Pig + HBase + Hive
TDC: Creación de una gran base de datos de Tweets 20
JSON
tweets
relation...
Ejemplos de resultados
tweets
TDC: Creación de una gran base de datos de Tweets 21
mentioned
Conclusiones y trabajo futuro
Sistema extensible (datos, fuentes y análisis)
Para el usuario final no supone un cambio de ...
Referencias por orden de aparición
• Marz, N., & Warren, J. (2012). A new paradigm for Big Data. Retrieved
from Big Data. ...
TDC (Twitter Data Collection):
Creación de una gran base de datos de Tweets
Repositorio: www.github.com/borjagilperez/twit...
Upcoming SlideShare
Loading in...5
×

Twitter Data Collection

3,146

Published on

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

Published in: Data & Analytics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,146
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
14
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Una vez elegida la forma de obtener los datos, pasamos a describir el punto central del trabajo: ¿Cómo almacenarlos?
  • Un MapReduce job es una unidad de trabajo que un cliente quiere que se realice. Existen dos tipos de nodos que controlan el proceso de ejecución de un job: un jobtracker y varios tasktrackers.

    El jobtracker coordina todos los jobs ejecutándose en el sistema mediante la programación de tareas para ejecutarse en tasktrackers. Los tasktrackers ejecutan las tareas y envían informes de progreso al jobtracker. Si una tarea falla el jobtracker puede reprogramarlo en un tasktracker diferente.
  • Hadoop ejecuta el job dividiéndolo en tareas, de las cuales hay dos tipos: map tasks y reduce tasks.
  • Hadoop permite el almacenamiento y procesamiento de gran cantidad de datos, no obstante, si uno está interesado en un pequeño subconjunto (por ejemplo los tweets que relacionados con un partido político), procesar el conjunto entero de datos en Hadoop puede ser muy pesado. Por ello… Serving Layer… Hbase.

    “Column-oriented databases save their data grouped by columns. Subsequent column values are stored contiguously on disk. This differs from the usual row-oriented approach of traditional databases, which store entire rows contiguously.”
    La razón para almacenar valores en un diseño por columna se basa en la suposición de que, para determinadas consultas, no todos los valores son necesarios.
  • Twitter, Hadoop y Hbase son los componentes principales de nuestro sistema, centros de la adquisición, almacenamiento (Batch layer) y consulta (Serving Layer). No obstante, para combinar estos componentes de forma eficaz se han usado una serie de tecnologías complementarias: ….
    Los resultados de Twitter4J son gestionados por Flume, que sirve de caché intermedia y reduce la carga que tiene que soportar Hadoop.
  • MD5: algoritmo de reducción criptográfico de 128 bits ampliamente usado.

    El nodo en el que se almacena un resultado depende de la rowkey que se le asigne, por ello, para balancear la carga que reciben los nodos conviene evitar que éstas sean secuenciales, siendo MD5 una solución muy eficaz.
  • Se han desarrollado 2 prototipos:
    Mono-nodo
    Multi-nodo

  • Extensible:
    - añadir más datos y de más fuentes.
    - hacer más procesos distintos (sacar la red de RTs, la concurrencia de hashtags, etc)
    Se puede mejorar el rendimiento de cada uno de sus componentes, así como el rendimiento de la interacción entre ellos.
    REST API + Streaming API: para hacer frente a picos de datos o cortes de acceso (electricidad, Internet, caidas de servicio…)
  • Twitter Data Collection

    1. 1. 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
    2. 2. 1. Introducción Motivación Capturar 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 1
    3. 3. 1. Objetivos Adquisición TDC: Creación de una gran base de datos de Tweets 2 Almacenamiento Consultas
    4. 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 3
    5. 5. Bases del Proyecto TDC: Creación de una gran base de datos de Tweets 4 2
    6. 6. Twitter ¿Cómo obtener los datos? REST API Consultas de tweets pasados (hasta 10 días) Streaming API Mayor rate limiting Menos consultas TDC: Creación de una gran base de datos de Tweets 5
    7. 7. Arquitectura Lambda (Marz & Warren, A new paradigm for Big Data, 2012) TDC: Creación de una gran base de datos de Tweets 6 Grandes volúmenes de datos añadidos continuamente Adquisición Almacenamiento Consultas Real-time
    8. 8. Arquitectura TDC TDC: Creación de una gran base de datos de Tweets 7 Batch Layer Serving Layer All data Batch view Batch view
    9. 9. TDC: Componentes TDC: Creación de una gran base de datos de Tweets 8 3
    10. 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 TDC: Creación de una gran base de datos de Tweets 9 Procesamiento distribuido Grandes cantidades de datos
    11. 11. procesamiento distribuido (MapReduce) a través de clusters de computadoras (HDFS) TDC: Creación de una gran base de datos de Tweets 10 HDFS Archivos muy grandes Acceso a datos constante NameNode (servidor maestro) DataNodes (trabajadores) MapReduce Poca eficiencia con archivos diminutos. MapReduce job Jobtracker Tasktrackers Hadoop Batch view Batch Layer Serving Layer Batch view
    12. 12. Map – Shuffle - Reduce MapReduce job Map tasks Reduce tasks TDC: Creación de una gran base de datos de Tweets 11 (Gates, 2011) Hadoop MapReduce
    13. 13. HBase Base 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ón Elegir bien las rowkeys (eliminan duplicados) TDC: Creación de una gran base de datos de Tweets 12 (Dimiduk & Khurana, 2013) Batch Layer Serving Layer
    14. 14. Arquitectura TDC TDC: Creación de una gran base de datos de Tweets 13 Batch Layer Serving Layer
    15. 15. TDC: Implementación TDC: Creación de una gran base de datos de Tweets 14 4
    16. 16. TwitterDataCollection Maven: gestión y construcción de proyectos Java resuelve dependencias TDC: Creación de una gran base de datos de Tweets 15 PigTwitterUDFs Toma de tweets: 1. Geolocalizados 2. Contiene palabras clave 3. (1) OR (2) Análisis: 1. UniformDate 2. Related 3. Coordinates 4. Hashtags 5. UserMentions 6. MD5gen Creación de tablas (vacías): 1. Tweets 2. Menciones 3. Mencionados por
    17. 17. Cluster multi-nodo Formado por la unión de varios cluster mono-nodo. • Master: nodo maestro y también esclavo • Slave: nodo esclavo TDC: Creación de una gran base de datos de Tweets 17 (Noll, Running Hadoop on Ubuntu Linux - Multi-Node Cluster, 2011)
    18. 18. TDC: Casos de uso TDC: Creación de una gran base de datos de Tweets 18 4
    19. 19. Tweets… • …geolocalizados swLngLat = -9.299269, 35.999882 neLngLat = 4.327812, 43.79142 • …que contienen alguna palabra clave keywords = @FIFAcom, independencia, #MundialBrasil, #Mundial2014, #Brasil2014, #MundialBrasil2014, Mundial, fútbol TDC: Creación de una gran base de datos de Tweets 19 Batch Layer Serving Layer
    20. 20. Flujo de análisis y consultas Pig + HBase + Hive TDC: Creación de una gran base de datos de Tweets 20 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)
    21. 21. Ejemplos de resultados tweets TDC: Creación de una gran base de datos de Tweets 21 mentioned
    22. 22. 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 rendimiento Se puede crear un API personalizada (e.g. PHP): Hive o Hue Añadir compresión Aprendizaje 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 22
    23. 23. 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 23
    24. 24. TDC (Twitter Data Collection): Creación de una gran base de datos de Tweets Repositorio: www.github.com/borjagilperez/twitter-data-collection Borja Gil Pérez: www.linkedin.com/in/borjagilperez ¿Preguntas? Y gira todo en torno a la estancia mientras se danza TDC: Creación de una gran base de datos de Tweets 24
    1. Gostou de algum slide específico?

      Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

    ×