HBase定义
HBase是以HDFS为数据存储的一种分布式、可扩展的NoSQL数据库。
HBase数据模型
Hbase的设计理念依据是Google的BigTable论文,论文中的介绍:BigTable是一个稀疏的、分布式的、持久的多维排序Map。
Base 数据模型主要由table、row、column、timestamp、cell几个元素构成。
table——表
一个表可能包含多行数据,表其实是一个分布式的表,真正的数据是存储在Region中的,Region可以理解为分片,每个表会包含多个分片,分别由不同的RegionServer管理,每个分片会有多个副本,以实现分片的高可用。
row——行
一行数据包含唯一的rowkey,多个column及对应的值,一张表中所有row都按照rowkey的字典顺序由小到大排列;因为数据在Region上的分布也与rowkey相关,所以在存储数据时,设计合理的rowkey使得数据尽可能在Region上分布均匀,在查询数据时就不会出现一个RegionServer负载过高,而其它RegionServer负载较低的情况。
column——列
列与关系型数据的列不同,HBase中的column由column family(列簇)和 qualifier(列)组成。两者之间使用 ":" 相连,一个列簇下可以有多个列。
cell——单元格
单元格由五元组(rowkey、column、timestamp、type、value)组成,其中type标识操作的类型(Put/Delete)这样的操作类型,在HBase底层以KV形式存储,key为(rowkey、column、timestamp、type),值为value。
timestamp——时间戳
每个单元格在写入HBase时都默认分配一个时间戳,作为单元格的版本,在写入时也可以自带时间戳,HBase支持多版本特性,同一个rowkey、column下可以有多个value存在,这些value使用timestamp作为版本号,版本号越大,数据越新。
前置条件
安装环境:操作系统为CentOS,已配置免密登录,已配置Java环境变量,已安装Hadoop。
参考:Hadoop集群搭建、操作HDFS文件系统、Zookeeper集群安装搭建。
安装介质:hbase-2.0.5-bin.tar.gz,地址:https://hbase.apache.org/
安装服务器:node51(192.168.2.51),node52(192.168.2.52),node53(192.168.2.53)。
上传安装介质并解压(node51)
tar -zxvf hbase-2.0.5-bin.tar.gz -C /opt/module/
cd /opt/module
mv hbase-2.0.5 hbase
环境变量: sudo vim /etc/profile.d/my_env.sh
#配置环境变量
#HBASE_HOME
export HBASE_HOME=/opt/module/hbase
export PATH=$PATH:$HBASE_HOME/bin
#执行使环境变量生效
source /etc/profile
echo $HBASE_HOME
配置(hbase-env.sh):
#备份一下:
cd $HBASE_HOME/conf
cp hbase-env.sh hbase-env.sh.bak
cp hbase-site.xml hbase-site.xml.bak
# vim hbase-env.sh :
export HBASE_MANAGES_ZK=false
配置(vim hbase-site.xml):
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
hbase.cluster.distributed
true
hbase.rootdir
hdfs://node53:8020/hbase
hbase.zookeeper.quorum
node53,node54,node55
hbase.zookeeper.property.clientPort
2181
zookeeper.session.timeout
120000
配置(vim regionservers):
node53
node54
node55
分发到其它服务器节点: xsync.sh hbase
Hbase启停
单点启动:
bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionservers
注:启动前先保证 hadoop和zookeeper。
集群启停:
bin/start-hbase.sh
bin/stop-hbase.sh
注:启动后的进程HRegionServer,其中node55多了一个HMaster进程。
Web访问:http://node53:16010/
进入命令行
bin/hbase shell
help
管理脚本(hbased.sh)
#!/bin/bash
if [ $# -lt 1 ]
then
echo "没有参数: 传入参数为: start、stop"
fi
case $1 in
"start")
ssh node55 "/opt/module/hbase/bin/start-hbase.sh"
;;
"stop")
ssh node55 "/opt/module/hbase/bin/stop-hbase.sh"
;;
esac
页面更新:2024-06-16
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号