我有两个顺序的Job1,和Job2。Job1的输出会写入HDFS中。Job2将Job1的输出下载到本地文件系统。但是,我发现下载后的文件大小为0。这是因为当Job2开始下载时,Job1的输出仍然没有写入HDFS中。
为了解决这个问题,现在我必须在完成Job1后等待一段时间,例如,大约30秒,让Job1的输出完全持久化到HDFS中。然后,我再运行Job2。
有人知道如何解决这个问题吗?也就是让Job2不用等待,这好像是Chain Job的问题。我想应该有办法解决这个问题。
你是这样做的吗?
Job job1 = new Job(conf, "Job1");
//configure job properties
job.waitForCompletion(true);
if (job.isSuccessful()) {
Job job2 = new Job(conf2, "job2");
//and so on
}`
这样做有帮助吗?