有人可以解释一下在hadoop的情况下配置的用途是什么?
并且还解释了以下代码:
// Create a new JobConf
JobConf job = new JobConf(new Configuration(), MyJob.class);
// Specify various job-specific parameters
job.setJobName("myjob");
FileInputFormat.setInputPaths(job, new Path("in"));
FileOutputFormat.setOutputPath(job, new Path("out"));
job.setMapperClass(MyJob.MyMapper.class);
job.setCombinerClass(MyJob.MyReducer.class);
job.setReducerClass(MyJob.MyReducer.class);
job.setInputFormat(SequenceFileInputFormat.class);
job.setOutputFormat(SequenceFileOutputFormat.class);
答案 0 :(得分:2)
在hadoop的情况下使用配置是什么?
如果我理解您的要求正确,那么您可以配置作业以了解运行MapReduce作业时要执行的操作。
您必须指定输入&输出数据类型和位置以及作为映射器和缩减器的类。
例如,在这里,您将获取某些"in"
目录的内容并写入"out"
目录。通常,这些是通过new Path(args[0])
和new Path(args[1])
从命令行获得的。
FileInputFormat.setInputPaths(job, new Path("in"));
FileOutputFormat.setOutputPath(job, new Path("out"));
在这里设置MapReduceJob的相应类
job.setMapperClass(MyJob.MyMapper.class);
job.setCombinerClass(MyJob.MyReducer.class);
job.setReducerClass(MyJob.MyReducer.class);
在此处指定输入和输出格式。它们必须分别对应mapper和reducer的输入和输出。
job.setInputFormat(SequenceFileInputFormat.class);
job.setOutputFormat(SequenceFileOutputFormat.class);
还可以使用人类可读的名称设置作业,以便在ResourceManager中对其进行跟踪。
job.setJobName("myjob");