Yarn/MRv2中MapReduce的启动过程之Client端
Yarn/MRv2中MapReduce的启动过程之Client端
Hadoop版本0.23.1
Shell端
$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-0.23.1.jar wordcount input output
Client端
1、bin/hadoop文件
(该文件主要用于解析hadoop的命令参数,并传给相应的Java类进行处理,其中与运行WordCount相关代码如下)
?2、RunJar.java
(该java文件用于加载参数传递过来的jar包并执行,相关代码如下)
?3、ExampleDriver.java
(在执行wordcount时,命令中并没有执行wordcount的类,只有一个字符串“wordcount”,ExampleDriver就是将这个字符串解析成对应的类,并通过ProgramDriver调用,相关代码如下)
?5、WordCount.java
(WordCount没什么好说的,初始化job的一些参数,提交job)
public static void main(String[] args) throws Exception { … Job job = new Job(conf, "word count"); job.setJarByClass(WordCount.class); job.setMapperClass(TokenizerMapper.class); job.setCombinerClass(IntSumReducer.class); job.setReducerClass(IntSumReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(otherArgs[0])); FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));//在这里通过waitForCompletion(true)提交Job System.exit(job.waitForCompletion(true) ? 0 : 1); }?6、之后,WordCount将在Job中通过JobSubmitter提交到实现了ClientProtocol协议的类去真正提交Job。
见YARN/MRv2 Client端 源码分析