Hadoop 映射器会忽略哪些文件作为输入?
我正在链接多个MapReduce作业,并希望传递/存储一些元信息(例如,原始输入的配置或名称)和结果。至少要忽略文件“\u SUCCESS”以及目录“\u logs”中的任何内容Hadoop 映射器会忽略哪些文件作为输入?,hadoop,filter,ignore,mapper,Hadoop,Filter,Ignore,Mapper,我正在链接多个MapReduce作业,并希望传递/存储一些元信息(例如,原始输入的配置或名称)和结果。至少要忽略文件“\u SUCCESS”以及目录“\u logs”中的任何内容 是否有默认情况下被InputReader忽略的文件名模式?或者这只是一个固定的有限列表?默认情况下,文件输入格式使用以下内容: private static final PathFilter hiddenFileFilter = new PathFilter(){ public boolean acce
是否有默认情况下被
InputReader
忽略的文件名模式?或者这只是一个固定的有限列表?默认情况下,文件输入格式使用以下内容:
private static final PathFilter hiddenFileFilter = new PathFilter(){
public boolean accept(Path p){
String name = p.getName();
return !name.startsWith("_") && !name.startsWith(".");
}
};
因此,如果使用任何FileInputFormat
(例如TextInputFormat
,KeyValueTextInputFormat
,SequenceFileInputFormat
),隐藏的文件(文件名以“\u”或“.”开头)将被忽略
您可以使用设置自定义路径过滤器
。请记住,hiddenFileFilter
始终处于活动状态。在配置作业输入类之后还是之前使用setInputPathFilter
?两者都可以。只需要在运行作业之前设置它。为什么要下划线?这只是HDFS的约定。我不知道确切的原因。不幸的是,这是使用链接时的问题。这些链接已经失效:(