Последующее задание не может сразу прочитать вывод предыдущего задания - PullRequest
1 голос
/ 15 ноября 2011

У меня есть два последовательных Job1 и Job2.Вывод Job1 записывается в HDFS.Job2 загрузит выходные данные Job1 в локальную файловую систему.Тем не менее, я обнаружил, что размеры файлов 0 после загрузки.Это происходит потому, что когда Job2 начинает загружаться, выходные данные Job1 все еще не записываются в HDFS.

Чтобы решить эту проблему, теперь мне нужно подождать некоторое время после завершения задания 1, например, около 30 секунд, что позволяет выводу задания 1 полностью сохраняться в HDFS.Затем я запускаю Job2.

Может кто-нибудь знать, как решить эту проблему?То есть пусть Job2 не нужно ждать.похоже на проблему цепочки вакансий.Я думаю, что должен быть способ для этой проблемы.

Спасибо!

1 Ответ

0 голосов
/ 17 ноября 2011
  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
    }`
    

Помогает ли это?

...