hadoop - 如何使用 ResourceManager HA wrt Hortowork 的 HDP 将 MR 作业提交到 YARN 集群?

标签 hadoop hdfs hadoop-yarn hadoop2 high-availability

我正在尝试了解如何将 MR 作业提交到基于 YARN 的 Hadoop 集群。

案例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 上运行,我指定了主机名,因为只有一个主机。

案例2:

现在,对于NN和RM都有HA的情况,我该如何提交作业呢?我无法理解这一点,因为现在我们有两个 RM 和 NN(主用/备用),而且我知道有 zookeeper 来跟踪故障。因此,从尝试提交作业的客户角度来看,我是否需要知道提交作业的确切 NN 和 RM,或者是否有一些我们必须用于提交作业的逻辑命名?

谁能帮我理解一下?

最佳答案

无论有无 HA,提交作业的命令都保持不变。

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

使用 -fs-jt 是可选的,除非您想指定 NamenodeJobTracker 与配置中的代码不同。

如果 core-site.xml 中的 fs.defaultFS 属性和定义 nameservice 的属性 (dfs.nameservices) 及其名称节点在客户端的 hdfs-site.xml 中正确配置,每当执行客户端操作时,将选择 Active Master。

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

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

关于hadoop - 如何使用 ResourceManager HA wrt Hortowork 的 HDP 将 MR 作业提交到 YARN 集群?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43441743/

相关文章:

hadoop - HIVE 抛出错误中的简单表创建

hadoop - 将数据从 Hadoop 传输到 Google Cloud Storage 时如何加快 distcp 速度

hadoop - webhdfs ://and hdfs://in terms of underlying protocol?之间有区别吗

hadoop - 按尺寸对 yarn 的运行应用进行排名

hadoop - 数据节点运行但未检测到

hadoop - Google云存储-Tez输出文件

hadoop - 文件分成许多部分

scala - 从 Spark 中以 Map(String,List(String)) 形式列出/检索 HDFS 分区

hadoop - 如何将XML类型的oracle数据迁移到Hadoop HDFS

maven - 构建 hadoop 2.3.0 - 发生 Ant BuildException : exec returned: 2