这部分内容主要讲在集群上运行mapreduce,说是这样说,但是由于我们还没有搭建集群环境,所以所有的工作相当于还是在伪分布的情况下做的。
第三版的书中还介绍了client-side classpath和task classpath,读了半天也是迷迷糊糊的。所以我直接讲我对这部分的理解,这一部分要注意-libjars这个选项,这也是上面那两个概念的一个区别。-libjars网上给出的统一说法是添加第三方依赖的,但HADOOP_CLASSPATH也是添加第三方依赖啊?这两者的不同就在于作用范围不同,HADOOP_CLASSPATH的作用范围只在MapReduce的客户端,而-libjars添加的依赖是作用在远程map和reduce任务的,所以-libjars添加的依赖会先上传到hdfs,然后供hadoop上的map和reduce进程使用。运行ToolRunner.run后,GenericOptionsParser会把由-libjars设置的参数设定为tmpjars属性的值,所以你可以在输出目录下的_log目录下找到想干的设置信息。你可以这样来查看: