2017-09-08 38 views
1

我使用hadoop 2.6.0和hbase 0.98.7,我为hdfs/namenode配置了HA。我正在显示活动的nn1和待机nn2。现在的问题是我无法为hbase启用高可用性,我也不知道如何将hbase与启用HA的hdfs集成。此外,虽然做jps HMaster正在运行,但无法看到hbase的用户界面。在apache hadoop2的HA模式下配置HBase所需的步骤?

我核心的site.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的site.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> 
+0

首先,dfs.journalnode.edits.dir配置必须应用于不在core-site.xml中的hdfs-site.xml文件中。为了看看有什么不对,请提供HMaster日志。 –

回答

0

首先,在配置HDFS HA,您的fs.defaultFS变成hdfs://ha-cluster。您还将其作为hbase.rootdir的一部分在您的hbase-site.xml中使用。因此,您可以将ARE与启用HA的HDFS集成。没有什么可做的了。其次,HBase HA与HDFS HA不同。基本上,您需要配置多个HBase主实例。其中一个是主动主站,其余主站实例成为备用主站。

说实话,我有点被Cloudera Manager搞垮了,其中你需要做的所有事情就是添加多个HBase实例。但是,如果你不使用HBase的任何供应商的分布和手动配置它,你可以按照说明这里 http://hbase.apache.org/book.html#quickstart_fully_distributed

第三,我不知道为什么主UI不能被访问。但是由于您的实例在AWS中,您可能需要配置安全组设置才能打开端口访问权限?