lw-lin / CoolplaySpark

酷玩 Spark: Spark 源代码解析、Spark 类库等
3.47k stars 1.41k forks source link

《0.1 Spark Streaming 实现思路与模块概述.md》讨论区 #1

Open lw-lin opened 8 years ago

lw-lin commented 8 years ago

这里是 《0.1 Spark Streaming 实现思路与模块概述.md》 讨论区。

如需要贴代码,请复制以下内容并修改:

public static final thisIsJavaCode;
val thisIsScalaCode

谢谢!

xiaopailang commented 6 years ago

@lw-lin 非常感谢大神的辛苦付出,文章写得非常细致,读来受益匪浅,这边遇到一个疑惑,想跟大神请教下: 一个batch里面有多个job,里面每个job完成都会进行一次checkpoint吗? 还是说一个batch的全部job完成了才进行checkpoint,找了下源码,在JobScheduler的handleJobCompletion方法里面好像也没找到jobComplete之后的checkpoint操作

lw-lin commented 6 years ago

@xiaopailang

xiaopailang commented 6 years ago

@lw-lin

  1. 那其实batch里面的job状态跟checkpoint信息不同步,如果从checkpoint恢复的话,会存在重复执行job的情况
  2. 如果是上述的这种情况,那自己管理offset,在每个batch后面存储offset来恢复会不会好一点,这种情况还没有checkpoint jar包不能升级的限制
lw-lin commented 6 years ago

@xiaopailang 业务逻辑保证写出结果是幂等就 OK。

xiaopailang commented 6 years ago

@lw-lin 明白了,感谢解惑!

zhangjin8813 commented 6 years ago

你好!我想问一下,我再学习的时候对于有些概念有点不清楚。比如数据流、块、block、task、job他们之间是什么样的关系呢

JustTobe commented 6 years ago

请问题主?Batch Interval的大小设置对批次处理时延的影响有多大

JustTobe commented 6 years ago

@lw-lin

LGDSuiBianDa commented 5 years ago

@lw-lin 您好,关于代码升级有些疑惑 看了官方文档 Upgrading Application Code中的说明 1.一种方式是升级后的streaming应用将与现有应用并行启动和运行,升级的稳定后,停掉现有的; 2.另一种方式停掉现有应用,启动升级后的应用,但需要修改checkpoint目录或者清空checkpoint目录。 我当前的场景是streaming中涉及state管理,升级代码后既要保证从上次结束时的offset开始处理,还要保证state状态不丢,目前看来用第一种方式同时启动两个应用可以实现,但需要两倍的集群资源,想请教下还有其他更好的方法吗