我正在使用hadoop2.6.0和hbase 0.98.7,我已经为hdfs/namenode配置了ha。我有活动nn1和待机nn2正在显示。现在的问题是我无法为hbase启用高可用性,而且我不知道如何将hbase与支持ha的hdfs集成。另外,在执行jps时,hmaster正在运行,但无法看到hbase的ui。
我的核心网站.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://ha-cluster</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/hadoop/HA/data/jn</value>
</property>
</configuration>
我的hdfs site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/HA/data/namenode</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>ha-cluster</value>
</property>
<property>
<name>dfs.ha.namenodes.ha-cluster</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ha-cluster.nn1</name>
<value>nn1.cluster.com:9000</value>
</property>
<property>
<name>dfs.namenode.rpc-address.ha-cluster.nn2</name>
<value>nn2.cluster.com:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.ha-cluster.nn1</name>
<value>nn1.cluster.com:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.ha-cluster.nn2</name>
<value>nn2.cluster.com:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://nn1.cluster.com:8485;nn2.cluster.com:8485;dn1.cluster.com:8485/ha-cluster</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.ha-cluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>nn1.cluster.com:2181,nn2.cluster.com:2181,dn1.cluster.com:2181</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>shell(/bin/true)</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
</configuration>
我的hbase站点.xml
<configuration>
<property>
<name>hbase.master</name>
<value>test-hmaster-1-aws.icare.com:60000</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://ha-cluster/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>test-hmaster-1-aws.icare.com,test-hslave-1-aws.icare.com,test-kerberos-aws.icare.com</value>
</property>
</configuration>
1条答案
按热度按时间4uqofj5v1#
首先,在配置hdfs ha之后
fs.defaultFS
变成hdfs://ha-cluster
. 你也在使用它作为hbase.rootdir
在你的hbase-site.xml
. 因此,您正在与支持ha的hdfs集成。没什么可做的了。第二,hbase-ha不同于hdfs-ha。基本上,您需要配置多个hbase主示例。其中一个是活动主机,其余的主机示例成为备份主机。
说实话,我有点被cloudera管理器宠坏了,在cloudera管理器中,启用hbase ha只需添加多个hbase示例。但是,如果您不使用hbase的任何供应商发行版,并且必须手动配置,则可以按照此处的说明进行操作http://hbase.apache.org/book.html#quickstart_fully_distributed
第三,我不知道为什么不能访问主ui。但是,由于您的示例在aws中,可能需要配置安全组设置来打开端口访问?