我尝试使用以下方法确定hadoop fs中是否存在多个路径: hdfs fs -test -e filename
但是,当我开始使用通配符 *
路径中的字符,用于搜索我的所有目录以查找特定文件(例如: /*/*/*/*/*/fileName
,这会显著减慢进程,因为测试函数会搜索所有目录。虽然我需要这种能力来查找文件(我使用的是一个公司的hadoop集群,我不知道具体的文件存储在哪里),但我想知道是否有任何方法可以加速类似于这个关于php的问题的过程。
我最初使用 hdfs fs -test -e filename
相对于 hdfs fs -ls filename
在阅读这个链接之后测试文件是否存在,因为我可以很容易地确定文件是否存在而不会抛出错误,但是我愿意在给出更好的替代方案的情况下更改我的代码。
我想知道在给定可变文件路径位置的情况下,确定hadoop fs中是否存在文件的最佳(最省时)方法。
我可以从给定可变文件路径位置的最新修改目录开始执行搜索吗?
是否可以在找到文件后终止搜索,或者在检查完所有路径之前继续运行搜索?
由于我只是在将文件传递到mapreduce作业之前检查文件是否存在,以避免作业尝试读取文件时出错,所以我是否应该忘记此耗时的检查,而只是尝试捕获文件路径不存在时抛出的错误?
暂无答案!
目前还没有任何答案,快来回答吧!