如何使用 ResourceManager HA wrt Hortowork 的 HDP 将 MR 作业提交到 YARN 集群?
How to submit MR job to YARN cluster with ResourceManager HA wrt Hortowork's HDP?
我正在尝试了解如何将 MR 作业提交到基于 YARN 的 Hadoop 集群。
案例一:
对于只有一个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 上,我指定主机名是因为只有一个主机。
案例2:
现在,对于NN和RM都有HA的情况,我该如何提交作业呢?我无法理解这一点,因为现在我们有两个 RM 和 NN(主用/备用),而且我知道有 zookeeper 来跟踪故障。因此,从尝试提交作业的客户角度来看,我是否需要知道提交作业的确切 NN 和 RM,或者是否有一些我们必须用于提交作业的逻辑命名?
谁能帮我理解一下?
不管有没有HA,提交作业的命令都是一样的。
hadoop jar <jar> <mainClass> <inputpath> <outputpath> [args]
使用 -fs
和 -jt
是可选的,除非您想指定与配置中的不同的 Namenode
和 JobTracker
,否则不会使用。
如果 fs.defaultFS
属性 in core-site.xml
和定义 nameservice (dfs.nameservices
) 及其名称节点的属性是在客户端的 hdfs-site.xml
中正确配置,只要执行客户端操作,就会选择 Active Master。
默认情况下,DFS 客户端使用此 Java class 来确定哪个 NameNode 当前处于活动状态。
<property>
<name>dfs.client.failover.proxy.provider.<nameserviceID></name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
我正在尝试了解如何将 MR 作业提交到基于 YARN 的 Hadoop 集群。
案例一:
对于只有一个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 上,我指定主机名是因为只有一个主机。
案例2:
现在,对于NN和RM都有HA的情况,我该如何提交作业呢?我无法理解这一点,因为现在我们有两个 RM 和 NN(主用/备用),而且我知道有 zookeeper 来跟踪故障。因此,从尝试提交作业的客户角度来看,我是否需要知道提交作业的确切 NN 和 RM,或者是否有一些我们必须用于提交作业的逻辑命名?
谁能帮我理解一下?
不管有没有HA,提交作业的命令都是一样的。
hadoop jar <jar> <mainClass> <inputpath> <outputpath> [args]
使用 -fs
和 -jt
是可选的,除非您想指定与配置中的不同的 Namenode
和 JobTracker
,否则不会使用。
如果 fs.defaultFS
属性 in core-site.xml
和定义 nameservice (dfs.nameservices
) 及其名称节点的属性是在客户端的 hdfs-site.xml
中正确配置,只要执行客户端操作,就会选择 Active Master。
默认情况下,DFS 客户端使用此 Java class 来确定哪个 NameNode 当前处于活动状态。
<property>
<name>dfs.client.failover.proxy.provider.<nameserviceID></name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>