Spark Streaming
KLordy
千里之行始于足下!
展开
-
Spark Streaming的Receiver的那些事儿!
这篇文章主要讲解Spark Streaming启动后,在StreamingContext中启动的ReceiverTracker以及这位大哥管理的Receiver的生成以及发布详细过程。我们先介绍Spark Streaming启动ReceiverTracker的过程,然后再提出一些问题,围绕这些问题对Receiver进行进一步的探索。 Spark Streaming启动时通过JobSched...原创 2018-11-18 20:14:32 · 634 阅读 · 0 评论 -
Spark Streaming每个批次完毕后的清道夫工作分析
本文目标:搞明白每个批次作业运行完毕后,是如何进行清理工作的。 回到提交作业的地方,即JobGenerator的generateJobs这里,沿着这条线顺藤摸瓜找到清理任务的入口,可以看到任务生成成功后会提交任务运行,摸瓜路线:JobGenerator.generateJobs() --> jobScheduler.submitJobSet() --> JobHandler.r...原创 2018-11-22 18:27:07 · 962 阅读 · 0 评论 -
Spark Streaming之Block生成和存储源码解析
这篇文章我们要搞明白的问题有:Block数据是如何生成的Block是如何存储的 上一篇文章已经介绍了Receiver是如何启动的,以及在Executor和Driver运行的ReceiverSupervisor、Receiver、ReceiverTracker之间的劳作关系,但是关于Receiver接收到数据,然后和ReceiverSupervisor之间配合BlockManager...原创 2018-11-20 01:00:52 · 377 阅读 · 0 评论 -
Spark Streaming批处理job生成流程解析
本篇文章继续上篇关于启动流程分析后进行,上篇中主要介绍了启动流程中主要涉及的JobScheduler和DStreamGraph在启动时的工作,已经知道启动起来之后,主要支撑运作的应该是JobScheduler->JobGenerator->Timer,通过定时器的形式每一个批次进行一次处理,那么每个批次开始定时器发布任务后,一直到当前批次处理完成,中间主要经历了哪些事前呢?对此,本...原创 2018-11-18 15:35:12 · 822 阅读 · 0 评论 -
Spark Streaming全天候实时top N实现
1. 背景介绍 公司的日志平台是通过spark streaming消费kafka上的数据,解析完毕后直接存入到hdfs,然后到了每天凌晨通过pig脚本来对前一天的hdfs上的全量数据进行统计分析,得出前一天的日志的各项指标。全量的数据量一天通过lzo压缩后有大概4T,解压完估计得有40~50T。然后每天计算的指标有十个,有若干个指标是需要计算top n这种,而且pig脚本代码质量较差,有一些j...原创 2019-01-17 16:36:59 · 3371 阅读 · 1 评论 -
Spark Streaming + Kafka + Redis状态管理 top100场景 Exactly Once
最近面试蚂蚁金服一面的时候,和面试官聊项目问题的时候,发现我这边业务实现的top100场景好像没有实现exactly once语义,我们项目的offset是存储在zk中,然后业务处理完毕后,最后再提交offset更新到zk,这种时候就会出现一个问题就是如果业务处理完毕,数据已经更新到redis中进行了累加,然后offset更新zk没成功宕机了,再次重启的时候就会读取老的offset导致数据重复...原创 2019-04-08 10:45:20 · 794 阅读 · 0 评论