当前位置:  开发笔记 > 大数据 > 正文

关于Job类的setJarByClass方法的Hadoop查询

如何解决《关于Job类的setJarByClass方法的Hadoop查询》经验,为你挑选了2个好方法。

在Hadoop API文档中给出了它

setJarByClass 

public void setJarByClass(Class cls)

Set the Jar by finding where a given class came from.

这个解释到底意味着什么?它是否从上面方法中指定的类文件参数创建了一个JAR文件?是否为MapReduce任务执行了该jar文件.



1> Mark..:

此方法设置jar文件,其中每个节点将查找Mapper和Reducer类.

它不会从给定的类创建一个jar.相反,它标识包含给定类的jar.是的,该jar文件是为MapReduce作业"执行"(实际上是该jar文件中的Mapper和Reducer).

(另请参阅Stanley Xu对类似问题的回答,因为您在命令行上给出了jar,因此需要使用此方法)



2> Rags..:

请注意,在Job类中调用上面的方法在驱动程序中.您的驱动程序是从客户端调用的,通常是您的桌面或不属于群集的边缘机器,您的类(在jar文件中)将位于该计算机上.要使mapreduce作业在群集上运行,您需要从客户端计算机将Mapper,reducer和任何其他必需的类发送到群集.驱动程序类负责将包含所需类的jar文件发送到集群.要发送哪个jar需要指定为驱动程序,不知道应该在驱动程序类路径上的jar文件堆中发送哪个jar.这是通过在Job类上使用setJarByClass或setJar方法或类似方法的任何其他变体来完成的.

显然,如果你没有指定它,意味着不调用此方法或将其注释掉将导致从属节点上的ClassNotFound异常.

希望这澄清一下!

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有