Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确保hadoop跳过某些输入文件的最有效方法是什么?_Hadoop - Fatal编程技术网

确保hadoop跳过某些输入文件的最有效方法是什么?

确保hadoop跳过某些输入文件的最有效方法是什么?,hadoop,Hadoop,我有一个hadoop应用程序,根据参数的不同,它只需要输入目录中的某些(很少!)输入文件。我现在的问题是:哪里是跳过这些文件的最佳位置(请阅读:尽早)?现在我定制了一个RecordReader来处理这个问题,但我想知道是否可以更快地跳过这些文件?在我当前的实现中,hadoop由于不相关的文件仍然有巨大的开销 也许我应该补充一点,这很容易看出我是否需要某个输入文件。如果文件名以参数开头,则需要它。分层构造输入目录可能是一种解决方案,但对于我的项目来说,这种解决方案不太可能,因为每个文件都会在某个目

我有一个hadoop应用程序,根据参数的不同,它只需要输入目录中的某些(很少!)输入文件。我现在的问题是:哪里是跳过这些文件的最佳位置(请阅读:尽早)?现在我定制了一个RecordReader来处理这个问题,但我想知道是否可以更快地跳过这些文件?在我当前的实现中,hadoop由于不相关的文件仍然有巨大的开销


也许我应该补充一点,这很容易看出我是否需要某个输入文件。如果文件名以参数开头,则需要它。分层构造输入目录可能是一种解决方案,但对于我的项目来说,这种解决方案不太可能,因为每个文件都会在某个目录中孤独地结束。

我成功地使用了setInputPaths()方法来指定包含逗号分隔文件名的单个字符串。

我建议您通过在输入路径上应用适当的模式来筛选输入文件,如下所述:
请注意,此解决方案不考虑子目录。改变它
能够递归访问基本路径中的所有子目录。

您是指FileInputFormat.SetInputPath吗?我想沿着这些思路,我可能会使用一个匹配某些输入文件的正则表达式。我找不到任何允许这样做的东西…抱歉。是的,我就是这个意思。如果你想要一个可编程的API,你可以使用setInputPathFilter(作业,ABC.class),其中ABC是你编写的一个类,(a)实现PathFilter,(b)将进行正则表达式测试。@KarelV你可能已经看到了我在本主题中的答案:我用setInputPathFilter()回忆说,如果你的输入路径(在setInputPath()中指定)是一个文件夹,那么它可能是,您的ABC筛选器类需要准备好递归遍历指定文件夹下的整个目录结构。我的第一次尝试被目录名阻塞了,我不得不添加逻辑来过滤掉这些名称。这几乎就像一个访客模式。@罗兰·本迪格:你的解决方案似乎奏效了。谢谢如果你在我的问题上复制粘贴你的答案,我可以接受它作为答案。也谢谢你,克里斯·格肯,罗兰的解决方案似乎更简单。