如何使用配置文件中的输入参数执行Map Reduce作业

时间:2013-11-26 09:47:52

标签: java hadoop mapreduce

我想执行一个MR作业,我希望通过配置文件将参数传递给作业。在mapper和reducer中也应该使用相同的参数。哪种API最适合实现这一目标?

1 个答案:

答案 0 :(得分:1)

可以将配置文件添加到DistributedCache中,我将向您展示如何在我的代码中完成:

要在mapper或reducer中读取文件,最简单的方法是在mapper / reducer的设置中从分布式缓存中打开它:

@Override
protected void setup(Context context) throws IOException,
                    InterruptedException {

            Path[] uris = DistributedCache.getLocalCacheFiles(context
                    .getConfiguration());

            String patternsFile = uris[0].toString();


            BufferedReader in = new BufferedReader(new FileReader(patternsFile));
           ...

            in.close();



        }

要将其添加到缓存中,请在设置作业时添加以下内容:

try {
            DistributedCache.addCacheFile(new URI(filename), job.getConfiguration());

        } catch (URISyntaxException e) {
            System.out.println("URI exception: "+filename);
            e.printStackTrace();
        }