Your SlideShare is downloading. ×
  • Like
Twitter Data Collection
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Twitter Data Collection

  • 1,907 views
Published

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 …

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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,907
On SlideShare
0
From Embeds
0
Number of Embeds
7

Actions

Shares
Downloads
5
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    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…)

Transcript

  • 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. 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. 1. Objetivos Adquisición TDC: Creación de una gran base de datos de Tweets 2 Almacenamiento Consultas
  • 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. Bases del Proyecto TDC: Creación de una gran base de datos de Tweets 4 2
  • 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. 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. 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. TDC: Componentes TDC: Creación de una gran base de datos de Tweets 8 3
  • 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. 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. 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. 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. Arquitectura TDC TDC: Creación de una gran base de datos de Tweets 13 Batch Layer Serving Layer
  • 15. TDC: Implementación TDC: Creación de una gran base de datos de Tweets 14 4
  • 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. 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. TDC: Casos de uso TDC: Creación de una gran base de datos de Tweets 18 4
  • 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. 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. Ejemplos de resultados tweets TDC: Creación de una gran base de datos de Tweets 21 mentioned
  • 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. 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. 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