如何在HA模式下配置HBase?

How to configure HBase in a HA mode?

我不明白 hbase-site.xml 的一个参数:

<property>
  <name>hbase.rootdir</name>
  <value>hdfs://hdfsHost:8020/hbase</value>
</property>

如果我们在 HA 模式下配置 HDFS 集群,我们必须在该参数中输入什么?我的意思是我们有 2 个名称节点(nn1、nn2)和 2 个数据节点(dn1、dn2),那么我们必须在 "hbase.rootdir" 参数中使用哪个节点?

最合乎逻辑的答案是当前处于活动状态的名称节点。但是,如果我们将使用活动名称节点并且它失败了,那么即使我们的 nn2 将其状态更改为活动,hbase 集群也会变得不可用。 Hbase 集群不会理解我们已经更改了我们的活动 NN。

此外,我已经使用以下参数配置了 HBase 集群:

<property>
  <name>hbase.rootdir</name>
  <value>hdfs://nn1:8020/hbase</value>
</property>

没用。
1. HMaster启动
2. 我将“http://nn1:16010”放入浏览器
3. HMaster消失

这是我的 logs/hbase-hadoop-master-nn1.log :
http://paste.openstack.org/show/549232/

我在文档中找不到答案。请帮我找出如何配置它

您应该在那里插入整个名称服务,而不是具体的名称节点。我假设您只配置了一个名称服务。查看hdfs-site.xml中的dfs.nameservices属性。那里应该有类似 "nameservice1" 的东西。然后像这样更改 hbase.rootdir :

<property>
  <name>hbase.rootdir</name>
  <value>hdfs://nameservice1:8020/hbase</value>
</property>

(fs.defaultFS 属性 in core-site.xml 也使用相同的表示法)

需要注意的一件事是 hbase 应该可以访问具有 HA 的最新 hdfs 配置。否则它会抱怨名称服务名称。

将 hdfs-site.xml 和 core-site.xml 复制到 hbase/conf 文件夹,这样您就不会看到您创建的 HA 名称服务的未知名称错误。