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.
5. • Lambda: Streaming + Batch
• APIs com tempo de resposta em ms
• Ferramentas de analise de dados
• MapReduce está morto :)
• Cuidado com HIVE Metastore :)
Arquitetura
6.
7. Consumo do Kafka
• Usamos Spark Streaming
• Quase em tempo real
• Usamos para escrever os Parquets
• Algoritmos de atualização constante
8. Batch
• Usamos Spark + MLlib
• Lemos de vários parquets (pv, track..)
• Maioria dos algoritmos
• Salvamos em outros bancos para
facilitar o consumo nas APIs
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(“…”)
}
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(“…”)
}
val df_imp = sqlContext.read.parquet("/
namenode/impressions/2016042510")
12. 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)
13. 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")