mapreduce,文件名为键,内容为值,许多小文件

wn9m85ua  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(415)

我已经研究了fileinputformat,其中filename是键,文本内容是值,如何在运行hadoop mapreduce作业时获取filename/file内容作为map的键/值输入,以及在运行hadoop mapreduce作业时获取filename/filedata作为map的键/值输入,但我在起步时遇到了困难。我以前没有用hadoop做过任何事情,我担心如果别人看到我犯了错误,我会走上错误的道路。
我有一个包含10万个html小文件的目录,我想用java实现的AmazonElasticMapReduce创建一个反向索引。一旦我有了文件内容,我就知道我想要我的map和reduce函数做什么了。
看了这里之后,我的理解是我需要对fileinputformat进行子类化并重写issplitable。但是,我的文件名与html来自的URL相关,所以我想保留它们。我需要做的就是用文本替换nullwriteable吗?还有其他建议吗?

pjngdqdw

pjngdqdw1#

应该使用wholefileinputformat将整个文件传递给Map器

conf.setInputFormat(WholeFileInputFormat.class);
conf.setOutputFormat(TextOutputFormat.class);
FileInputFormat.setInputPaths(conf,new Path("input"));
FileOutputFormat.setOutputPath(conf,new Path("output"));

相关问题