HA集群环境下的Hbase的集群搭建

由于本人hadoop环境是HA,在此基础上搭建Hbase集群时遇到HRegionServer启动后莫名挂掉的情况,现对搭建过程做下记录:

服务器环境为自己电脑的三台虚拟机:hadoop01  hadoop02  hadoop03

1.下载并解压hbase,此处是hbase-1.1.7-bin.tar.gz

2. 配置hbase-env.sh,把Java环境变量告诉HBase,并配置ZooKpeer是否托管。

export JAVA_HOME=/usr/java/jdk1.8.0_111
export HBASE_HEAPSIZE_ZK=false

3. 配置hbase-site.xml

<configuration>
<!-- 指定hbase在HDFS上存储的路径 -->
   <property>
        <name>hbase.rootdir</name>
        <value>hdfs://ns1/hbase</value>
   </property>
   <!-- 指定hbase是分布式的 -->
   <property>
       <name>hbase.cluster.distributed</name>
       <value>true</value>
   </property>
   <property>
        <name>hbase.master</name>
        <value>hadoop01:60000</value>
   </property>
   <!-- 指定zk的地址,多个用“,”分割 -->
   <property>
      <name>hbase.zookeeper.quorum</name>
      <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
   </property>
</configuration>


4.  最后配置regionservers,这个最简单了,把里面的内容改成下面的就可以了:

hadoop01
hadoop02
hadoop03

5.这里需要特别注意的是,已强调我的集群是HA的,

上面配置的hbase-site.xml

<property>
       <name>hbase.rootdir</name>
       <value>hdfs://ns1/hbase</value> 
</property>

对应我HA hadoop的core-site.xml中的

<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1/</value>                         
</property>

故还需要将hadoop配置中的core-site.xml和hdfs-site.xml拷贝到hbase的conf下,好让它认识你配置中的ns1,从而找到hdfs,之前未做此操作就报错说找不到ns1。

但是没有做拷贝,经同事提醒做的软连接,一条命令解决,流弊~

ln -s /home/hadoop/hadoop-2.7.2/etc/hadoop/core-site.xml core-site.xml

ln -s /home/hadoop/hadoop-2.7.2/etc/hadoop/hdfs-site.xml hdfs-site.xml


6.启动hbase,hbase的bin下执行./start-hbase.sh 节点出现HMaster和HRegionServer

(好像是有hbase的UI界面,端口60010,但是访问hadoop01:60010没能成功。。。)




(我HA的hadoop的core-site.xml是这样的:

<configuration>
<!-- 指定hdfs的nameservice为ns1 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1/</value>                        
</property>
<!-- 指定hadoop临时目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.7.1/hadoopdata</value>    
</property>
<!-- 指定zookeeper地址 -->
<property>
<name>ha.zookeeper.quorum</name>   
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value> 
</property>
</configuration>


hdfs-site.xml是这样的:

<configuration>
<!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>hadoop01:9000</value>
</property>
<!-- nn1的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>hadoop01:50070</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>hadoop02:9000</value>
</property>
<!-- nn2的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>hadoop02:50070</value>
</property>


<!-- 指定NameNode的edits元数据在JournalNode上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop01:8485;hadoop02:8485;hadoop03:8485/ns1</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/hadoop/hadoop-2.7.2/journaldata</value>
</property>


<!-- 开启NameNode失败自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.ns1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>


<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<!-- 使用sshfence隔离机制时需要ssh免登陆 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<!-- 配置sshfence隔离机制超时时间 -->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>10000</value>
</property>
</configuration>

)













 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值