使用Hadoop和Java命令执行MapReduce作业有何区别?

10

有许多选项可以运行Map-Reduce程序。有人可以解释一下以下命令之间的区别吗?对Map-Reduce作业有什么影响吗?

     java -jar MyMapReduce.jar [args] 

     hadoop jar MyMapReduce.jar [args] 

     yarn jar MyMapReduce.jar [args] 

在这些命令中哪个最好或其他的任何一个?

是否可以使用下面的命令,在Web服务上使用端口8088(YARN)正常显示所有有关作业的信息,就像显示Hadoop和yarn命令一样,进行配置?

     java -jar MyMapReduce.jar [args] 
2个回答

4

它们之间没有更好的一方。当您执行java -jar命令时,它与执行非Hadoop应用程序相同。如果您使用hadoop jaryarn jar,它将使用/usr/bin/hadoop/usr/bin/yarn脚本来设置环境。

除非您修改了任何脚本以设置其他变量,否则三个应该工作相同。


当我使用“java -jar MyMapReduce.jar [args]”运行Map Reduce作业时,在YARN(端口号为8088的WEB服务)中没有显示作业条目。但是,如果使用YARN或HADOOP命令运行,则在YARN服务中会显示有关作业的所有信息。 - Tinku

2
选项具有自己的规格:
   java -jar MyMapReduce.jar [args] 

以上要求所有hadoop jar包都在jar包的类路径中定义。
在某些情况下,
   hadoop jar MyMapReduce.jar [args]  and 
   yarn jar MyMapReduce.jar [args] 

以上的jar包将通过获取$HADOOP_CLASSPATH中预定义的jar包来运行。

当我使用“java -jar MyMapReduce.jar [args]”运行Map Reduce作业时,YARN(端口号8088上的WEB服务)不会显示作业条目。但是,如果使用YARN或HADOOP命令运行,则YARN服务将显示有关作业的所有信息。 - Tinku
使用java -jar运行将会生成一个Java作业,而hadoop jar则生成一个Hadoop作业,因此它可以在作业跟踪器中使用。 - K S Nidhin
1
如果一个集群有三个节点,并且我使用Java运行MapReduce作业,它会在单台机器上运行还是使用集群中的所有节点? - Tinku

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接