众所周知,线上的Spark Streaming应用程序都是7 * 24 * 30小时不间断运行的。因此如果需要对正在运行的应用程序进行代码的升级,那么有两种方式可以实现。
1、并行的方式
也就是升级后的Spark应用程序与旧的Spark应用程序并行,当新的应用程序没有问题时,才可以将旧的替换掉。这种方式适合于客户单独拉取自己的数据。该方法在企业中应用还是比较多的~
2、必须有缓存系统保存数据才可以,启动新的应用程序
Checkpoint目录不能共享
注意:配置了driver自动恢复机制时,如果想要根据旧的应用程序的checkpoint信息,启动新的应用程序,是不可行的。需要让新的应用程序针对新的checkpoint目录启动,或者删除之前的checkpoint目录