Hbase的概况

Hbase的概况

Hbase数据库简介

数据库分为两种rdbms(关系型数据库)nosql(非关系型数据库)
rdbms类型的数据库,主要是面向行存储的数据库,主要适用于事务性要求严格的场合,
或者说面向行存储的存储系统适合OLTP
rdbms为了实现强一致性通过严格的ACID事物来同步,牺牲了可用性,伸缩性.
nosql为了实现高可用性牺牲一致性.
Hbase是一个面向列的分布式存储系统,高可用,高并发,对数据透明切分,具备伸缩性.

Hbase数据模型

两个主要的概念,Row key,Cloumn Family(列族),列族是在系统启动之前事先定义好的,
每一个列族都可以根据’限定符’有多个列.
文字表现的始终比较模糊,我们直接上图进行分析,

在这里插入图片描述
:hbase采用表来组织数据,表由行和列来组成,列划分为若干的列族.
:每个hbase都有若干行组成,每一行都由行键(row key)来标识.
列族:一个hbase表被分为许多的列族(column family)的集合,他是基本的的访问控制单元.
列限定符:列族里的数据通过限定符(或列)来定位.
单元格:在hbase的表中,通过行,列族和列限定符确定一个单元格(cell)单元格中储存的数据没有数据类型,全部被视为字节数组byte[]
时间戳:每个单元格都保留着一份数据的多个版本,这些版本都是采用时间戳进行索引的.

hbase的实现原理

hbase中主要有单个功能组件
1.库函数:连接到每个客户端
2.一个master主服务器,分配任务,负载均衡
3.许多region(区)服务器,储存维护,处理客户端读写要求.
客户端不依赖master,而是通过zookeeper来分配任务的,多数客户端不合master通信,是的master的负载很小

在hbase中构建SQL引擎

1.易使用,SQL方便人们理解可以轻松使用
2.减少代码,SQL语言层次到,代码量少

解决方案

hbase整合hive,这个方案在hbase0.60版本以后开始出现,利用两者的通信接口,依靠hive_habae-handler.jar工具包,
因为hbase中有过一次较大的版本变动,所以不是所有的hive版本都能和现有的hbase整合,特别注意两个版本的一致性.

构建hbase二级索引

hbase只有一个针对行键的索引,访问hbase表中的行,只有三种方式
1.通过单个行键访问
2.通过一个行键的区间来访问
3.权表扫描

hbase的安装

1.启动zookeeper集群手写好的脚本start-zoo.sh

[root@doit01 zookeeper-3.4.6]# sh start-zoo.sh

2.启动hdfs

start-dfs.sh

3.上传解压hbase-2.0.4-bin.tar.gz
4.hbase配置
修改hbase-env.sh

export JAVA_HOME=/usr/apps/jdk1.8.0_141/
	export HBASE_MANAGES_ZK=false
	

修改hbase-site.xml

<configuration>
	<!-- 指定hbase在HDFS上存储的路径 -->
	<property>
	<name>hbase.rootdir</name>
	<value>hdfs://doit01:9000/hbase</value>
	</property>
	<!-- 指定hbase是分布式的 -->
	<property>
	<name>hbase.cluster.distributed</name>
	<value>true</value>
	</property>
	<!-- 指定zk的地址,多个用“,”分割 -->
	<property>
	<name>hbase.zookeeper.quorum</name>
	<value>doit01:2181,doit02:2181,doit03:2181</value>
	</property>
	</configuration>

regionservers配置 启动集群中的regionserver机器
doit01
doit02
doit03

集群分发

启动
启动方式1

[root@doit01 hbase-2.0.4]# ntpdate 0.cn.pool.ntp.org  //同步时间
[root@doit01 hbase-2.0.4]# bin/hbase-daemon.sh start master
[root@doit01 hbase-2.0.4]# bin/hbase-daemon.sh start regionserver
//提示机器之间时间同步 tnpdate time1.aliyun.com 否则会出现'ClockOutSyncException'

启动方是2

	//一键启动
[root@doit01 hbase-2.0.4]# bin/start-hbase.sh
	//一键关闭
[root@doit01 hbase-2.0.4]# bin/stop-hbase.sh
//页面访问
	http://doit01:16010/master-status
//shell客户端
	hbase shell

启动方式3

#HBASE的群起脚本:用于方便一次性启动所有的节点的HBASE的所有服务!
[root@doit01 hbase-2.0.4]# vi start-hbase.sh
#!/bin/bash
for i in 1 2 3
do
ssh doit0${i} "source /etc/profile;/usr/apps/hbase-2.0.4/bin/start-hbase.sh"
done

hbase shell客户端通用命令

status: 查看HBase的状态,例如,服务器的数量。

hbase(main):002:0> status
1 active master, 0 backup masters, 1 servers, 0 dead, 0.0000 average load
Took 2.1936 seconds  

version: 提供正在使用HBase版本。

hbase(main):003:0> version
2.0.4, r205e39c5704bf38568b34926dde9f1ee76e6b5d0, Fri Dec 28 22:13:42 PST 2018
Took 0.0003 seconds    

whoami: 提供有关用户的信息。

hbase(main):004:0> whoami
root (auth:SIMPLE)
    groups: root
Took 0.0452 seconds     

create_namespace 创建名称空间
describe_namespace 查看名称空间的描述信息
drop_namespace 删除一个名称空间
list_namespace 查看系统中的名称空间
list_namespace_tables 列举出一个名称空间下所有的表

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值