文章目录

  • 前言
  • 高可用集群搭建


前言

什么时候用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

属性

Hbase

RDBMS

数据类型

只有字符串

丰富的数据类型

数据操作

增删改查,不支持join

各种各样的函数与表链接

存储模式

基于列式存储

基于表结构和行式存储

数据保护

更新后仍然保留旧版本

替换

可伸缩性

轻易增加节点

需要中间层,牺牲性能

Hbase简介

Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩,实时读写的分布式数据库。

利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为其分布式协同服务主要用来存储非结构化和半结构化的松散数据(列存Nosql数据库)

hbase簇结构 hbase 集群 最少几个节点_分布式

高可用集群搭建

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=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
 GetConfnode2
Jps
 DataNode
 NodeManager
 NameNode
 QuorumPeerMain
 HRegionServer
 HMaster
 DFSZKFailoverController
 JournalNodenode3
JournalNode
 QuorumPeerMain
 HRegionServer
 Jps
 DataNode
 NodeManager
 ResourceManager

访问:node1:16010

hbase簇结构 hbase 集群 最少几个节点_hbase_02