2017-04-16 101 views
1

我想了解如何将MR作业提交给基于YARN的Hadoop集群。如何使用ResourceManager HA和Hortowork的HDP将MR作业提交给YARN群集?

案例1:

对于其中只有一个ResourceManager中(即NO HA)的情况下,我们可以提出这样的工作(我实际使用,我相信是正确的)。

hadoop jar word-count.jar com.example.driver.MainDriver -fs hdfs://master.hadoop.cluster:54310 -jt master.hadoop.cluster:8032 /first/dir/IP_from_hdfs.txt /result/dir 

可以看出,RM在端口8032和NN运行在54310和我指定的主机名becasue只有一个主人。

案例2:

现在,当有HA两个NN和RM的情况下,我该如何提交作业?我无法理解这一点,因为现在我们有两个RM和NN(主动/备用),我知道有一个动物园管理员要跟踪失败。所以,从客户的角度来看,如果要提交一份工作,我是否需要知道提交工作的确切NN和RM,还是有一些我们必须用来提交工作的逻辑命名?

任何人都可以帮我理解吗?

回答

1

有或没​​有HA时,提交作业的命令保持不变。

hadoop jar <jar> <mainClass> <inputpath> <outputpath> [args] 

使用-fs-jt是可选的,并且不使用,除非你想指定NamenodeJobTracker是从一个在配置不同。

如果fs.defaultFS属性在core-site.xml和性质限定所述名称服务dfs.nameservices)及其namenodes在客户端的hdfs-site.xml正确配置,活动主将每当执行的客户机操作选择。

默认情况下,DFS客户端使用此Java类来确定哪个NameNode当前处于活动状态。

<property> 
    <name>dfs.client.failover.proxy.provider.<nameserviceID></name> 
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> 
</property> 
+0

非常感谢您的帮助,这是否意味着我们必须在客户端配置Java类(根据上面的配置)?如果我们不这样做,会不会有一些问题? – CuriousMind

+1

如果未提供,客户端将无法联系到当前的活动NN。 – franklinsijo

相关问题