Я согласен со всем, что говорит Правин. Я предоставлю конкретный способ, которым я лично обработаю это в моем кластере.
Когда я помещаю файлы в HDFS, я помещаю их в папку по минутам, основываясь на системных часах.
$ hadoop fs -put thisfile1249.txt /tmp/
$ hadoop fs -mv /tmp/thisfile1249.txt `date "+/data/%Y/%m/%d/%H/%M/"`
Посмотрим, как будет выглядеть путь:
$ echo `date "+/data/%Y/%m/%d/%H/%M/"`
/data/2011/12/27/09/49/
Это означает, что по мере поступления файлов они будут попадать в папку с каждой минутой. Поскольку время монотонно увеличивается, когда вы запускаете папку, вы знаете, что вам не придется возвращаться и снова бегать по этой папке. Если вы хотите запускать работу каждый час, вы можете просто указать путь ввода /data/2011/12/27/08
. Ежедневно будет /data/2011/12/26
и т. Д.