网站首页 > 博客文章 正文
Hbase介绍
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作为版本号,版本号越大,数据越新。
Hbase安装
前置条件
安装环境:操作系统为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"?>
<configuration>
<!-- 部署分布式服务 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 存储HDFS的节点 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://node53:8020/hbase</value>
</property>
<!-- ZooKeeper管理节点 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>node53,node54,node55</value>
</property>
<!-- 使用master节点2181端口 -->
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<!-- ZooKeeper超时时间 -->
<property>
<name>zookeeper.session.timeout</name>
<value>120000</value>
</property>
</configuration>
配置(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-11-27 CentOS服务器安装JDK8环境
- 2024-11-27 Centos7虚拟机搭建Hadoop集群环境教程
- 2024-11-27 聊聊Shell的种类,变量的分类,条件测试的表达
- 2024-11-27 Java环境快速搭建
- 2024-11-27 centos7安装软件-jdk,maven,git
- 2024-11-27 centos 7 安装部署流程 最全最细包成功
- 2024-11-27 CentOS,安装Redis5,Java客户端Jedis、Lettuce和Redisson对比
- 2024-11-27 Linux使用profile.d目录设置环境变量
- 2024-11-27 Linux (Centos6.5)下安装java+jdk+tomcat(非yum安装)
- 2024-11-27 Linux CentOS服务器安装Python3.8环境
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)