在运行Google Cloud Dataflow 'WordCount' example时,我注意到了一些意料之外的事情。我注意到在分段位置有两个版本的同一个JAR!
我编辑了我的WordCount POM以使用更新的SLF4J日志记录JAR。 (1.7.8)
显然,较新的JAR与旧版JAR一起部署。旧的JAR尚未删除。
根据我以前对其他Java项目的经验,我怀疑这可能导致类加载问题。但也许不是。
Google Cloud数据流如何处理潜在的类加载?它是否使用OSGI?或者可能与JAR文件名末尾的哈希签名有关?
或者我应该清理每个部署的分段位置?
答案 0 :(得分:2)
Dataflow识别要播放的必要文件,并在PackagingUtil.java中附加散列以防止冲突,因此这应该不是问题。已暂存的文件显式传递到DataflowPipelineRunner.java中filesToStage
中的作业,而不是查看暂存目录的全部内容。