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.

Big Data na Globo.com - Dev Version - 2016

3,106 views

Published on

Curta apresentação sobre a arquitetura de big data na globo.com.
Essa apresentação visa mostrar como Big Data auxiliou recomendação e analytics na empresa, bem como conseguimos construir uma plataforma (pipeline) para distribuir os dados pela empresa.
Essa apresentação será feita no TDC - Florianópolis.

Published in: Data & Analytics
  • Be the first to comment

Big Data na Globo.com - Dev Version - 2016

  1. 1. Big Data na globo.com Como estamos revolucionando com dados o maior portal do Brasil @renan_oliveira dev version www.renanoliveira.net
  2. 2. Eventos • 3 bilhões de eventos diários • 50 milhões de usuários únicos por mês • +100 mil novos conteúdos por mês
  3. 3. O que fazemos? RECOMENDAÇÃO ANALYTICS PIPELINE
  4. 4. • Lambda: Streaming + Batch • APIs com tempo de resposta em ms • Ferramentas de analise de dados • MapReduce está morto :) • Cuidado com HIVE Metastore :) Arquitetura
  5. 5. Consumo do Kafka • Usamos Spark Streaming • Quase em tempo real • Usamos para escrever os Parquets • Algoritmos de atualização constante
  6. 6. Batch • Usamos Spark + MLlib • Lemos de vários parquets (pv, track..) • Maioria dos algoritmos • Salvamos em outros bancos para facilitar o consumo nas APIs
  7. 7. ANÁLISE AD-HOC
  8. 8. object SparkExample extends App { val sparkConf = new SparkConf() val sc = new SparkContext(sparkConf) val sql = new SQLContext(sc) import sql.implicits._ val df_imp = sqlContext.read.parquet(“…”) val expCount = df_imp.groupBy(df_imp.exp).count() expCount.write.save(“…”) }
  9. 9. object SparkExample extends App { val sparkConf = new SparkConf() val sc = new SparkContext(sparkConf) val sql = new SQLContext(sc) import sql.implicits._ val df_imp = sqlContext.read.parquet(“…”) val expCount = df_imp.groupBy(df_imp.exp).count() expCount.write.save(“…”) } val df_imp = sqlContext.read.parquet("/ namenode/impressions/2016042510")
  10. 10. object SparkExample extends App { val sparkConf = new SparkConf() val sc = new SparkContext(sparkConf) val sql = new SQLContext(sc) import sql.implicits._ val df_imp = sqlContext.read.parquet(“…”) val expCount = df_imp.groupBy(df_imp.exp).count() expCount.write.save(“…”) } val df_imp = sqlContext.read.parquet("/ namenode/impressions/2016042510") val expCount = df_imp.groupBy(df_imp.experiment).count( ).orderBy(desc("count")).head(10)
  11. 11. object SparkExample extends App { val sparkConf = new SparkConf() val sc = new SparkContext(sparkConf) val sql = new SQLContext(sc) import sql.implicits._ val df_imp = sqlContext.read.parquet(“…”) val expCount = df_imp.groupBy(df_imp.exp).count() expCount.write.save(“…”) } expCount.write.save("/namenode/ exp_count/x.parquet")
  12. 12. WORKFLOW
  13. 13. Globo AB
  14. 14. • 100 mil recomendações por minuto • 15 ms de tempo de resposta (p50) • +200 testes A/B nos últimos 2 anos • +20 algoritmos diferentes Números
  15. 15. Algoritmos • Collaborative Filtering • Content-Based • Matrix Factorization - ALS
  16. 16. *Dados extraídos em maio de 2016 +30%+52%
  17. 17. *Dados extraídos em maio de 2016 +105% +40%
  18. 18. 13.2% feed editorial Maior diversidade feed recomendado 100% *matérias que foram para o feed
  19. 19. Obrigado renanoliveira.net
  20. 20. grandesdados.com
  21. 21. talentos.globo.com

×