强制hdfs globstatus跳过它没有权限访问的目录

ivqmmu1c  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(366)

所以我需要从hdfs收集大量的目录,它们本身包含子目录,我希望能够使用globstatus。我的路径模式基本上如下所示:

"/directory/*/{opt1,opt2}/{opt1,opt2,opt3}*"

不幸的是,对于*捕获的某些目录,我没有执行权限(无法查看内容),但是glob尝试查看内部,导致了异常。有没有办法请求glob跳过它没有权限的目录,而不是完全失败?
我知道还有其他方法可以实现同样的目标,但据我所知,这将是更复杂的,我认为需要更多的请求hdfs,而不是一个简单的glob。

rjee0c15

rjee0c151#

回答这个问题以防其他人遇到这个问题。。。
的筛选行为 globStatus 作为 FileSystem / Globber 班级。实际上,它只是提交了一系列 listStatus 命令并过滤返回值。要获得所描述的行为,需要一些自定义逻辑,但不会比 globStatus 应用程序编程接口。

相关问题