如何确保在同一JAR的2个不同版本的Google Cloud Dataflow的转移位置中没有类加载器问题

时间:2017-01-06 18:26:40

标签: google-cloud-storage google-cloud-dataflow

在运行Google Cloud Dataflow 'WordCount' example时,我注意到了一些意料之外的事情。我注意到在分段位置有两个版本的同一个JAR!

我编辑了我的WordCount POM以使用更新的SLF4J日志记录JAR。 (1.7.8)

显然,较新的JAR与旧版JAR一起部署。旧的JAR尚未删除。

根据我以前对其他Java项目的经验,我怀疑这可能导致类加载问题。但也许不是。

Google Cloud数据流如何处理潜在的类加载?它是否使用OSGI?或者可能与JAR文件名末尾的哈希签名有关?

或者我应该清理每个部署的分段位置?

1 个答案:

答案 0 :(得分:2)

Dataflow识别要播放的必要文件,并在PackagingUtil.java中附加散列以防止冲突,因此这应该不是问题。已暂存的文件显式传递到DataflowPipelineRunner.javafilesToStage中的作业,而不是查看暂存目录的全部内容。