Я реализую рабочий процесс oozie, где в первом задании я читаю данные из базы данных, используя sqoop и записывая ее в hdfs. Во втором задании мне нужно прочитать большой объем данных и использовать файлы, которые я только что написал в задании для обработки больших данных. Вот то, что я думал, или пытался:Как добавить файлы в распределенный кеш в задание oozie
Предполагая работу один записывает файлы в какой-нибудь каталог на HDFS, добавляя файлы распределенного кэша в классе драйвера задания двух не будет работать как oozie рабочий процесс знает только о картер и редукторы. (Пожалуйста, исправьте меня, если я ошибаюсь здесь)
Я также попытался написать в каталог lib рабочего процесса, надеясь, что файлы будут автоматически добавлены в распределенный кеш, но я понял, что каталог lib должен быть доступен только для чтения когда работа выполняется.
Я также думал, могу ли я добавить файлы в распределенный кеш в
setup()
задания 2, тогда я мог бы получить к ним доступ в mapper/редукторе. Я не знаю, как можно добавлять файлы вsetup()
, возможно ли это?
Как еще я могу прочитать выходные файлы предыдущего задания в следующем задании из распределенного кеша. Я уже использую входной каталог задания два, чтобы прочитать данные, которые необходимо обработать, поэтому я не могу их использовать.
Я использую Hadoop 1.2.1, Oozie 3.3.2 на виртуальной машине Ubuntu 12.04.
Спасибо тонну. Опция ' [FILE-PATH] ' работала для меня. Если это помогает кому-то, вот что я сделал - я сначала использовал действие '', чтобы написать содержимое двух таблиц в hdf. Затем я использовал '' действие для переименования файлов, так как у обоих было имя 'part-m-00000', а затем я использовал' [FILE-PATH] 'в следующем задании, чтобы добавить файлы в распределенный кеш и прочитать их в моем редукторе. –
sundeepa
OK, ** но ** что, если scoop дает N количество файлов в пути? – user2458922