Hbase完全分布式高可用集群搭建

Hbase完全分布式高可用集群搭建


1、    环境准备
certOS7, JDK1.8, 三台机器分别如下
Hostname    IP    master    regionserver    zk
prd-ecs-3    172.18.48.129        *    *
prd-ecs-4    172.18.48.130    *    *    *
test-ecs-2    172.18.96.146    *    *    *

关闭SELINUX,关闭防火墙,关闭iptables,或者设置对应端口或内网IP可互相通信。
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 172.18.0.0/16 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 88 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 89 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 99 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9876 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 18080 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9870 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8088 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 19888 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 16010 -j ACCEPT

设置各台机器的hostname
vi /etc/hostname
#设置成对应的名称

设置各台机器的 hosts, 将ip和hostname对应关系设置好
vi /etc/hosts
172.18.48.129 prd-ecs-3
172.18.48.130 prd-ecs-4
172.18.96.146 test-ecs-2

 
参考hbase官方文档选择对应的hadoop和hbase版本

2、    linux ssh免密登陆配置
hbase节点之间的通讯是通过ssh进行的,SSH默认都是需要密码的,开启免密钥登录会减少很多麻烦。操作很简单,两步(三步)就可以完成。
目的:让mater和backup节点能免密登录到其它各节点
2.1 首先在本地生成公钥和私钥。分别在所有节点上执行:
ssh-keygen -t rsa
#后面都按回车跳过即可(三次)
# 运行结束后在 ~/.ssh/下生成两个新文件: id_rsa.pub和id_rsa
#设置本机ssh免密
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    2.2 将公钥拷贝到本机和远程主机
ssh-copy-id root@ prd-ecs-3 
or
ssh-copy-id prd-ecs-3
ssh-copy-id test-ecs-2
……
# username是用户名 host是主机的地址
#远程主机将用户的公钥保存在 ~/.ssh/authorized_keys文件中
#或者直接手动复制也可以
    2.3 测试能否免密登陆:
        ssh prd-ecs-3

3、    安装JDK
下载jdk1.8, 解压安装
tar -xzvf jdk1.8.0_131.tar.gz -C /home/data/
配置环境变量
vi /etc/profile
在最后面添加如下配置
# java setting
export JAVA_HOME=/home/data/jdk1.8.0_131
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin

将JDK分发到其它节点安装好

4、    安装hbase
下载hbase, 解压安装
tar -xzvf hbase-2.1.3-bin.tar.gz -C /home/data/big/
配置环境变量
vi /etc/profile
在最后面添加如下配置
# Hbase setting
export HBASE_HOME=/home/data/big/hbase
export PATH=$PATH:$HBASE_HOME/bin

5、    安装zookeeper
下载 zookeeper 并解压安装
tar -xzvf zookeeper-3.4.13.tar.gz -C /home/data/big/

配置环境变量
vi /etc/profile
在最后面添加如下配置
export ZK_HOME=/home/data/big/zookeeper
export PATH=$PATH:$ZK_HOME/bin

将 /etc/profile 复制到其它节点
rsync -av /etc/profile root@hostname:/etc/
# 生效环境变量
source /etc/profile

修改zookeeper配置文件
cp /home/data/big/zookeeper/conf/zoo_sample.cfg /home/data/big/zookeeper/conf/zoo.cfg
vi /home/data/big/zookeeper/conf/zoo.cfg
#修改 dataDir配置
dataDir=/home/data/big/data/zookeeper
#在最后添加配置
server.1=prd-ecs-3:2888:3888
server.2=prd-ecs-4:2888:3888
server.3=test-ecs-2:2888:3888
#按上述配置序号将数字添加到对应dataDir的myid文件中,如server.1添加如下
echo 1 > /home/data/big/data/zookeeper/myid

复制zookeeper到其它各节点
cd /home/data/big
rsync -av zookeeper root@hostname:`pwd`
在其它各节点配置 /home/data/big/data/zookeeper/myid 文件,内容为对应的数字

启动3台zookeeper服务测试
cd /home/data/big
zookeeper/bin/zkServer.sh start
zookeeper/bin/zkServer.sh status

6、    修改hbase配置
修改 hbase-env.sh
cd /home/data/big
vi hbase/conf/hbase-env.sh
#加入如下内容
export JAVA_HOME=/home/data/jdk1.8.0_131
# 关闭hbase自带的zookeeper
export HBASE_MANAGES_ZK=false

修改regionservers
vi hbase/conf/regionservers
#内容如下,三个regionserver节点
prd-ecs-3
prd-ecs-4
test-ecs-2

修改 backup-masters 
vi hbase/conf/backup-masters
#内容如下,备用mater节点
test-ecs-2

修改hbase-site.xml 
vi hbase/conf/hbase-site.xml
# 内容如下
<configuration>
    <!-- <property>
        <name>zookeeper.znode.parent</name>
        <value>/hbase/master</value>
    </property> -->
    <!-- 伪分布式、本地文件系统的配置方式
    <property>
        <name>hbase.rootdir</name>
        <value>file:///home/data/big/tmp/hbase</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/data/big/tmp/zookeeper</value>
    </property>
    <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>
    -->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoop-test/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>prd-ecs-3,prd-ecs-4,test-ecs-2</value>
    </property>
    <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>
</configuration>

将hadoop集群配置文件hdfs-site.xml复制到hbase/conf/下面
rsync -av hadoop/etc/hadoop/hdfs-site.xml hbase/conf/
# 或做软连接
ln -s hadoop/etc/hadoop/hdfs-site.xml /home/data/big/hbase/conf/hdfs-site.xml

# hbase-2.1.x编译的问题将htrace包收到复制到hbase/lib下
cp $HBASE_HOME/lib/client-facing-thirdparty/htrace-core-3.1.0-incubating.jar $HBASE_HOME/lib/

将hbase分发到其他节点
cd /home/data/big
rsync -av hbase root@hostname:`pwd`

7、    启动hbase
在master上启动hbase
start-hbase.sh

jps查看

浏览器查看状态http://172.18.48.130:16010   http://172.18.96.146:16010 
Master

Backup Master

全部搭建成功!
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值