嘿,这更像是一个Java问题,但它与Hadoop有关。
我在我的Map Reduce java作业中的代码上有这一行:
JobConf conf= new JobConf(WordCount.class);
conf.setJobName("Word Count");
.............
.............
.............
FileInputFormat.addInputPath(conf, new Path(args[0]));
而不是"提供"包含许多文件的目录,如何设置特定的文件名?
摘自《Hadoop: The Definitive Guide》一书:
输入路径是通过调用静态 addInputPath() 方法来指定的 在 FileInputFormat 上,它可以是单个文件,一个目录(其中 如果输入形成该目录中的所有文件),或者一个文件 模式。顾名思义,addInputPath() 可以调用的比 一次使用来自多个路径的输入。
因此,要回答您的问题,您应该能够将路径传递给特定的单个文件,并且它将用作唯一的输入(只要您不使用其他路径对addInputPath()进行更多调用)。
如果您只想对一个文件执行 map-reduce 操作,则快速简便的解决方法是仅将该文件本身移动到文件夹中,然后提供该文件夹的 addInputPath 路径。
如果您尝试读取每个地图任务的整个文件,那么我建议您看看这篇文章:在 hadoop 中将文件作为单个记录读取
你到底想做什么?
我会将其作为评论发布,但我显然没有足够的特权......