HBase高可用集群搭建

前言

什么时候用Hbase?Hbase不适合解决所有问题:

  • 首先数据库量要足够多,如果有十亿及百亿行数据,那么Hbase是一个很好的选项,如果只有几百万行甚至不到的数据量,RDBMS是一个很好的选择。因为数据量小的话,真正能工作的机器量少,剩余的机器都处于空闲的状态
  • 其次,如果你不需要辅助索引,静态类型的列,事务等特性,一个已经用RDBMS的系统想要切换到Hbase,则需要重新设计系统。
  • 最后,保证硬件资源足够,每个HDFS集群在少于5个节点的时候,都不能表现的很好。因为HDFS默认的复制数量是3,再加上一个NameNode。
  • Hbase在单机环境也能运行,但是请在开发环境的时候使用。
    内部应用
  • 存储业务数据:车辆GPS信息,司机点位信息,用户操作信息,设备访问信息。。。
  • 存储日志数据:架构监控数据(登录日志,中间件访问日志,推送日志,短信邮件发送记录。。。),业务操作日志信息
  • 存储业务附件:UDFS系统存储图像,视频,文档等附件信息

前置环境准备:

  • hadoop集群环境
  • zookeep集群环境
  • centos7

本文介绍安装Hbase版本:hbase-2.2.5-bin.tar.gz,百度网盘链接 提取码:mxbk
Hbase和RDBMS

属性HbaseRDBMS
数据类型只有字符串丰富的数据类型
数据操作增删改查,不支持join各种各样的函数与表链接
存储模式基于列式存储基于表结构和行式存储
数据保护更新后仍然保留旧版本替换
可伸缩性轻易增加节点需要中间层,牺牲性能

Hbase简介
Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩,实时读写的分布式数据库。
利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为其分布式协同服务主要用来存储非结构化和半结构化的松散数据(列存Nosql数据库)
在这里插入图片描述

高可用集群搭建

1. 下载安装

创建文件夹:mkdir /usr/local/src/hbase
解压:tar -zxvf hbase-2.2.5-bin.tar.gz
删除压缩文件:rm -rf hbase-2.2.5-bin.tar.gz

2. 修改集群环境

  • conf文件夹下 vim hbase-env.sh 添加如下内容:
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export JAVA_HOME=/usr/local/src/jdk/jdk1.8
export HBASE_MANAGES_ZK=false
export HADOOP_HOME=/usr/local/src/hadoop/hadoop-3.2.2
  • 修改配置文件
    vim hbase-site.xml 将自带的几行property覆盖掉
 <!--设置HBase表数据,也就是真正的HBase数据在hdfs上的存储根目录 -->
 <property>
    <name>hbase.rootdir</name>
    <value>hdfs://bdp/hbase</value>
  </property>
 <!--是否为分布式模式部署,true表示分布式部署 -->
  <property>
   <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <!--zk集群的url配置,多个host中间用逗号 -->
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>node1:2181,node2:2181,node3:2181</value>
  </property>
  <!--HBase在zookeeper上数据的根目录znode节点 -->
    <property>
    <name>zookeeper.znode.parent</name>
    <value>/hbase</value>
    </property>
   <!--本地文件系统tmp目录,一般配置成local模式的设置一下,但是最好还是需要设置一下,因为很多文件都会默认设置成它下面的 -->
  <property>
    <name>hbase.tmp.dir</name>
    <value>/var/bdp/hbase</value>
  </property>
    <!--使用本地文件系统设置为false,使用hdfs设置为true -->
       <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
    </property>
  • vim regionservers 内容如下:

node1
node2
node3

  • vim backup-masters

node2

  • 拷贝hadoop配置文件

scp /usr/local/src/hadoop/hadoop-3.2.2/etc/hadoop/core-site.xml ./
scp /usr/local/src/hadoop/hadoop-3.2.2/etc/hadoop/hdfs-site.xml ./

  • 拷贝其他节点

scp -r /usr/local/src/hbase node2:/usr/local/src/
scp -r /usr/local/src/hbase node3:/usr/local/src/

  • 修改环境变量
    vim /etc/profile

export HBASE_HOME=/usr/local/src/hbase/hbase-2.2.5
export PATH= H B A S E H O M E / b i n : HBASE_HOME/bin: HBASEHOME/bin:PATH
保存: source /etc/profile

  • 传给另外节点

scp /etc/profile node2:/etc/
scp /etc/profile node3:/etc/
ssh root@node2 “source /etc/profile”
ssh root@node3 “source /etc/profile”

  • 在一键启动脚本添加
    vim /bdp/code/shell/start-bdp.sh
 echo -e "\e[1;31m 【START BDP -----------------HBASE】 \e[0m" >> /root/logs/start-bdp.log
start-hbase.sh >> /root/logs/start-bdp.log

sleep 5
jps >> /root/logs/start-bdp.log
echo "=========NODE1==========" >> /root/logs/start-bdp.log
ssh  root@node2 "source /etc/profile;jps" >> /root/logs/start-bdp.log
echo "=========NODE2==========" >> /root/logs/start-bdp.log
ssh  root@node3 "source /etc/profile;jps" >> /root/logs/start-bdp.log
echo "=========NODE3==========" >> /root/logs/start-bdp.log
  • 在一键停止脚本添加
    vim /bdp/code/shell/stop-bdp.sh
echo -e "\e[1;31m 【STOP BDP -----------------HBASE】 \e[0m" >> /root/logs/start-bdp.log
stop-hbase.sh >> /root/logs/start-bdp.log

sleep 5
jps >> /root/logs/start-bdp.log
echo "=========NODE1==========" >> /root/logs/start-bdp.log
ssh  root@node2 "source /etc/profile;jps" >> /root/logs/start-bdp.log
echo "=========NODE2==========" >> /root/logs/start-bdp.log
ssh  root@node3 "source /etc/profile;jps" >> /root/logs/start-bdp.log
echo "=========NODE3==========" >> /root/logs/start-bdp.log
  • 启动: ./start-bdp.sh
    查看启动状态:
    node1:

NameNode
JobHistoryServer
DFSZKFailoverController
NodeManager
JournalNode
ResourceManager
HRegionServer
Jps
QuorumPeerMain
DataNode
HMaster
GetConf

node2

Jps
DataNode
NodeManager
NameNode
QuorumPeerMain
HRegionServer
HMaster
DFSZKFailoverController
JournalNode

node3

JournalNode
QuorumPeerMain
HRegionServer
Jps
DataNode
NodeManager
ResourceManager

访问:node1:16010
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值