为什么当 运行 HA HDFS 和 MR1 时自动故障转移中断?
Why does automatic failover break when running both HA HDFS and MR1?
我正在重新配置 Hadoop 集群,以便为共享文件系统和 MR1 jobtracker 使用高可用性 (HA) 功能。
我似乎无法让两者同时工作的自动故障转移功能。相反,其中一项服务卡在了两个(所有)守护进程都处于待机状态的状态。
如何让自动故障转移适用于我的所有 HA 服务?
我正在使用:
- Cloudera CDH 4.5.0
- JDK 7
- Ubuntu 12.04
- ...没有 Cloudera Manager
namenode 和 jobtracker 共享相似的 HA 实现,以至于它们都扩展了相同的基础 class。他们都使用后备 zookeeper 集群来决定哪个可用节点处于活动状态。
zookeeper 中使用的位置是通过将故障转移组名称(即 dfs.nameservices
和 mapred.job.tracker
中给出的值)附加到可配置前缀来构建的。
这两种服务的可配置前缀默认为 /hadoop-ha
。
这意味着如果两个服务配置了相同的故障转移组名称(例如,my-application
),那么这两个服务使用的最终 zookeeper 路径将发生冲突。如果他们实际上使用同一个 zookeeper 集群,一个服务将不会获得 zookeeper 节点并且会破坏自动故障转移。
解决方法是避免碰撞。最简单的方法是确保 mapred-site.xml
中的 mapred.job.tracker
和 hdfs-site.xml
中的 dfs.nameservices
不包含公共值。
人们还可以尝试在每个服务的基础上配置 /hadoop-ha
前缀。它由 ha.zookeeper.parent-znode
配置 属性.
控制
例如,在 hdfs-site.xml
中可能有:
<property>
<name>ha.zookeeper.parent-znode</name>
<value>/hdfs-ha</value>
</property>
...而 mapred-site.xml
包含:
<property>
<name>ha.zookeeper.parent-znode</name>
<value>/mapred-ha</value>
</property>
但是,注意在这个配置中hdfs-site.xml
和mapred-site.xml
不能同时加载:一个key的值会打败对方。
无论哪种方式,zookeeper 路径都会发生变化,需要相应的 -formatZK
命令重新 运行。
我正在重新配置 Hadoop 集群,以便为共享文件系统和 MR1 jobtracker 使用高可用性 (HA) 功能。
我似乎无法让两者同时工作的自动故障转移功能。相反,其中一项服务卡在了两个(所有)守护进程都处于待机状态的状态。
如何让自动故障转移适用于我的所有 HA 服务?
我正在使用:
- Cloudera CDH 4.5.0
- JDK 7
- Ubuntu 12.04
- ...没有 Cloudera Manager
namenode 和 jobtracker 共享相似的 HA 实现,以至于它们都扩展了相同的基础 class。他们都使用后备 zookeeper 集群来决定哪个可用节点处于活动状态。
zookeeper 中使用的位置是通过将故障转移组名称(即 dfs.nameservices
和 mapred.job.tracker
中给出的值)附加到可配置前缀来构建的。
这两种服务的可配置前缀默认为 /hadoop-ha
。
这意味着如果两个服务配置了相同的故障转移组名称(例如,my-application
),那么这两个服务使用的最终 zookeeper 路径将发生冲突。如果他们实际上使用同一个 zookeeper 集群,一个服务将不会获得 zookeeper 节点并且会破坏自动故障转移。
解决方法是避免碰撞。最简单的方法是确保 mapred-site.xml
中的 mapred.job.tracker
和 hdfs-site.xml
中的 dfs.nameservices
不包含公共值。
人们还可以尝试在每个服务的基础上配置 /hadoop-ha
前缀。它由 ha.zookeeper.parent-znode
配置 属性.
例如,在 hdfs-site.xml
中可能有:
<property>
<name>ha.zookeeper.parent-znode</name>
<value>/hdfs-ha</value>
</property>
...而 mapred-site.xml
包含:
<property>
<name>ha.zookeeper.parent-znode</name>
<value>/mapred-ha</value>
</property>
但是,注意在这个配置中hdfs-site.xml
和mapred-site.xml
不能同时加载:一个key的值会打败对方。
无论哪种方式,zookeeper 路径都会发生变化,需要相应的 -formatZK
命令重新 运行。