Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Kafka and KSQL - Apache Kafka Meetup

232 views

Published on

On September 6th, we got together at Campus Madrid to learn about Kafka and KSQL. Discover with Antonio Abril, Software Architect at Stratio, how we can use Kafka to process real-time social media data.

Find out more about the event: https://www.stratio.com/blog/events/apache-kafka-and-ksql-in-action/

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Kafka and KSQL - Apache Kafka Meetup

  1. 1. © Stratio 2018. Confidential, All Rights Reserved. KAFKA 06th September 2018
  2. 2. Stratio 2018. Confidential, All Rights Reserved Presentación Quién soy? Antonio Abril Ledesma aabril@stratio.com Arquitecto Software en Stratio Kafka
  3. 3. Stratio 2018. Confidential, All Rights Reserved KafkaINDICE Introducción1 Arquitectura4 Análisis de tweets en tiempo real2 Características principales3 Demo5
  4. 4. Introducción 1
  5. 5. Stratio 2018. Confidential, All Rights Reserved Kafka : Apache Kafka es un sistema de almacenamiento publicador/subscriptor distribuido, particionado y replicado. Estas características, añadidas a que es muy rápido en lecturas y escrituras lo convierten en una herramienta excelente para comunicar streams de información que se generan a gran velocidad y que deben ser gestionados por una o varias aplicaciones. En este ejemplo vamos a ver como mediante Twitter, podemos crear un sistema de ingestión de datos. Crearemos un productor y consumidor de topics y mostraremos los datos capturados mediante un microservicio creado con Spring Boot Introducción Kafka
  6. 6. Análisis de tweets en tiempo real 2
  7. 7. Stratio 2018. Confidential, All Rights Reserved Análisis de tweets en tiempo real usando kafka y spark ¿Qué es? : Aplicación en tiempo real que nos permite auditar los principales tweets que se estén ejecutando con la plataforma de Twitter. La api de Twitter provee sólo el 3% de esos Tweets a nivel mundial sin coste No tiene orden de entrada, es aleatorio por diferentes países ¿Para qué sirve?: Permite medir la actividad en la red social, la interacción con sus seguidores y el comportamiento de la/las comunidades virtuales. Estos datos se pueden guardar y analizan para mejorar el impacto informativo en la audiencia y resultan de gran utilidad para las aplicaciones de SEO y de marketing digital. Cómo funciona y qué utiliza: Spring Boot, Java, Kafka, Spark Genera un microservicio que utiliza Spark Streaming para analizar hashtags populares de los flujos de datos de Twitter. Los datos provienen de la fuente de Twitter Streaming API y se envían a Kafka. El servicio consumidor recibe datos de Kafka y luego los procesa en una transmisión mediante Spark Streaming. Análisis de Twitter en tiempo real Kafka
  8. 8. Stratio 2018. Confidential, All Rights Reserved Análisis de Twitter en tiempo real Kafka
  9. 9. Características principales 3
  10. 10. Stratio 2018. Confidential, All Rights Reserved Características Twitter ¿ Para qué utilizarlo ? -Podemos conseguir información en tiempo real de eventos (conciertos, deportes) -Conseguir historial de personas o empresas que necesitamos conocer -Localización de personas o empresas por localización física ¿Qué beneficios nos aporta en comparación con otros competidores? -Es una de las plataformas más eficaces de medios sociales -A través de microblogging, permite acceder a las noticias en tiempo real sobre opiniones y obtener así una retroalimentación directa con los seguidores Kafka
  11. 11. Stratio 2018. Confidential, All Rights Reserved Características ¿Cómo accedemos a la Api de Twitter? Desde : https://apps.twitter.com/ Configuración fichero .properties con los datos de Twitter Creamos los tokens de seguridad : String appId = “appId” String appSecret = “appSecret” String accessToken = “accessToken” String accessTokenSecret = “accessTokenSecret” Una vez configurado, ya tenemos acceso al servicio para obtener la información Kafka
  12. 12. Stratio 2018. Confidential, All Rights Reserved Características Kafka: - Rápido : Un único Broker de Kafka puede manejar cientos de megabytes de lecturas y escrituras por segundo desde miles de clientes. - Escalable : Kafka está diseñado para permitir que un solo cluster sirva como el eje central de datos para una organización grande. Puede ser ampliado elásticamente sin tiempo de inactividad. Los flujos de datos se dividen y se extiende sobre un cluster de máquinas para permitir que los stream de datos sean más grande que la capacidad de una máquina - Duradero : Los mensajes se persisten en disco y se replican dentro del clúster para evitar la pérdida de datos. Cada Broker puede gestionar terabytes de mensajes sin impacto. - Distribuido : Kafka cuenta con un diseño de cluster-centric que ofrece durabilidad y garantías de tolerancia a fallos. Kafka
  13. 13. Stratio 2018. Confidential, All Rights Reserved Características Kafka : - Los sistemas de mensajería tradicional suelen tener 2 modelos : Queues (p2p) y Topics (Publish-Suscribe) - En una cola (Queue) cada mensaje va a un consumidor, mientras que en un topic (PS) se hace broadcast de un mensaje a todos los consumidores. - Kafka dispone de una funcionalidad que permite contemplar ambos modelos : se llama Consumer Group Kafka
  14. 14. Stratio 2018. Confidential, All Rights Reserved Características Estadísticas : - Existen diversas métricas de rendimiento, estos son algunos ejemplos : Se observa como Kafka consume a 22K mensajes/segundo, más de 4 veces más rápido que ActiveMQ y RabbitMQ Kafka
  15. 15. Stratio 2018. Confidential, All Rights Reserved Características Spark Para qué utilizarlo ¿? -Apache Spark es un sistema de computación en clúster rápido y de uso general. Proporciona un API de alto nivel en Java, Scala, Python y R, y un motor optimizado que admite gráficos de ejecución general. También es compatible con un amplio conjunto de herramientas de alto nivel que incluyen Spark SQL para SQL y procesamiento de datos estructurados, MLlib para aprendizaje automático, GraphX ​​ para procesamiento de gráficos y Spark Streaming. Que beneficios nos aporta en comparación con otros competidores ¿? -Ofrece unos tiempos de cálculo en memoria mucho más rápidos que cualquier otra plataforma. Almacenamiento de los datos en la memoria caché hace que las transformaciones que se van produciendo de esos datos también se almacenan en memoria, sin tener que acceder dentro del disco. Kafka
  16. 16. Arquitectura 4
  17. 17. Stratio 2018. Confidential, All Rights Reserved Architectura Productor: mediante la api java de kafka, le indicamos donde esta corriendo kafka y el topic por donde escribimos los mensajes Consumidor: creamos el consumidor indicando el host, puerto donde está arrancado el broker, configuramos los parámetros como el timeout, tamaño del buffer y el identificador del consumidor Kafka
  18. 18. Stratio 2018. Confidential, All Rights Reserved Architectura ¿Quién utiliza este tipo de arquitectura ? -Empresas para auditar redes sociales -Campañas de marketing -Fuerzas del orden para medir eventos -Gobiernos para conocer orientación de voto de la población Kafka
  19. 19. Stratio 2018. Confidential, All Rights Reserved Architectura Diagrama de secuencia : Kafka
  20. 20. 20 DEMO
  21. 21. Stratio 2018. Confidential, All Rights Reserved Referencias Architectura ○ Spring for Apache Kafka ○ Spring Social Twitter ○ Spark Overview ○ Apache Kafka Documentation ○ Big Data Processing with Apache Spark - Part 3: Spark Streaming ○ Spring Kafka - Embedded Unit Test Example Ejemplos de cómo usar con Confluent : Confluent - Robin Moffat ○ https://www.confluent.io/blog/using-ksql-to-analyse-query-and-transform-data-in-kafka ○ https://github.com/confluentinc/cp-demo Kafka

×