您的位置:首页 > 其它

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

2016-12-08 14:33 323 查看
由于本人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

[b]


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>

)

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: