我正在开发用Perl编写的Hadoop MapReduce流作业,以在Hadoop中处理大量日志。新文件不断添加到数据目录中,该目录中有65000个文件。
目前,我在目录上使用ls
,并跟踪我处理了哪些文件,但即使是ls
也需要很长时间。我需要尽可能接近实时地处理这些文件。
使用ls
来跟踪似乎不是最佳的。有没有任何工具或方法可以跟踪像这样的大目录中没有处理的日志?
您可以在程序处理后重命名日志文件。
For example:
command: hadoop fs -mv numbers.map/part-00000 numbers.map/data
重命名后,您可以很容易地识别已处理的和尚未处理的。
我以为这能解决你的问题。