Hadoop作业配置



有人能解释一下在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);

在hadoop的情况下,配置有什么用?

如果我正确理解您的要求,那么您可以配置一个作业,以便在运行MapReduce作业时知道要做什么。

您必须指定input&输出数据类型和位置,以及作为映射器和还原器的类。

例如,在这里,您将获取某个"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);

在这里您可以指定输入和输出格式。这些必须分别对应于映射器和还原器的输入和输出。

 job.setInputFormat(SequenceFileInputFormat.class);
 job.setOutputFormat(SequenceFileOutputFormat.class);

作业也可以设置为可读的名称,这样您就可以在ResourceManager中跟踪它。

job.setJobName("myjob");

相关内容

  • 没有找到相关文章

最新更新