后续作业无法立即读取上一个作业的输出

时间:2011-11-15 09:49:09

标签: java hadoop mapreduce

我有两个连续的Job1和Job2。 Job1的输出写入HDFS。 Job2会将Job1的输出下载到本地文件系统。但是,我发现下载后文件的大小为0。这是因为当Job2开始下载时,Job1的输出仍未写入HDFS。

要解决这个问题,现在我必须在完成Job1后等待一段时间,例如大约30秒,这样Job1的输出就会完全持续到HDFS。然后,我运行Job2。

有谁知道如何解决这个问题?也就是说,让Job2不必等待。 这似乎是连锁工作的问题。我认为应该解决这个问题。

谢谢!

1 个答案:

答案 0 :(得分:0)

  1. 作业2是否有必要将文件下载到本地文件系统?你的工作不能解决HDFS中的文件吗?
  2. 你这样做吗?

    Job job1 = new Job(conf, "Job1");
    //configure job properties
    job.waitForCompletion(true);
    
    if (job.isSuccessful()) {
        Job job2 = new Job(conf2, "job2");
        //and so on
    }`
    
  3. 这有帮助吗?