hbase与Oracle怎么交互,HBase介绍及交互式Shell使用

HBase介绍

HBase是运行于HDFS顶层的非关系型数据库,它具备随即读写功能,是一种面向列的数据库。

我们都知道,Hive能将SQL指令转化为MapReduce任务执行,虽然它基于HDFS存储,但仍可看作分布式的SQL系统。与之相比,HBase采用了Bigtable的数据模型——增强的稀疏排序映射表(key-value),因此可看作分布式的NoSQL系统。HBase也延续了NoSQL数据库的优点,存储数据灵活、查询速度快,但适合更大的数据量。

HBase以表的形式存储数据,表由多个行组成,每一行包括行键(Row Key)及若干个列簇(Column Family),每个列簇有若干个列修饰符(Column),每个列修饰符又可以有若干个版本(Version)。而在HBase中每一行代表由行键标识的键值映射组合,其中,键由行键、列簇、列修饰符、版本构成,每一个键值对在HBase会被定义为一个Cell。HBase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。

3a7da3b87dcce65dcb486bddc55545b5.png

HBase架构

在HBase中,region是一个基本概念。一个用户表通常会被切分成多个region,分别存储在多个region server上,由region server处理对这些region的io请求,并负责切分在运行过程中变得过大的region。

管理region server集群,则由master负责。master主要为region server分配region,负责region server的负载均衡,并发现失效的region server并重新分配其上的region。

HBase中有两个非常重要的表:.META.表和-ROOT-表。.META.表用来记录用户表的region信息,它也会被切分成多个region,分别存储在多个region server上。-ROOT-表则用来记录.META.表的region信息,-ROOT-表永远只有一个region,存储在一个region server上。在进行数据访问时,需要知道管理-ROOT-表的region server的地址,也就是所有region的寻址入口,存在zookeeper中。

另外,client包含访问HBase的接口,维护着一些cache来加快对HBase的访问,比如region信息,因此不会影响到master。

HBase环境搭建

HBase会用到HDFS存储数据,因此要先安装Hadoop。

安装HBase

sudo tar -zxvf ./hbase*.tar.gz -C /opt

sudo mv /opt/hbase* /opt/hbase

配置环境变量

export HBASE_HOME=/opt/hbase

export PATH=${HBASE_HOME}/bin:$PATH

修改配置文件

在${HBASE_HOME}目录下,主要进行如下几个配置文件的修改:

conf/hbase-env.sh

conf/hbase-site.xml

conf/regionservers

HBase Shell启动与使用

使用HBase交互式Shell进行操作,需要先启动hbase服务,再运行hbase shell命令即可。

启动HBase Shell交互式终端

${HBASE_HOME}/bin/start-hbase.sh

输入 jps 命令查询服务:

fa54168632089ebcd1241845560db967.png

输入 hbase shell 命令:

34cb14903ed2af9c9e0d88309a4a9236.png

使用HBase Shell进行表操作

列出所有的表

hbase(main):001:0> list

TABLE

0 row(s) in 0.1430 seconds

=> []

创建表student

hbase(main):002:0> create 'student', 'info'

0 row(s) in 2.3800 seconds

=> Hbase::Table - student

查看student表结构

hbase(main):003:0> describe 'student'

Table student is ENABLED

student

COLUMN FAMILIES DESCRIPTION

{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERS

IONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}

1 row(s) in 0.0650 seconds

向student表中插入一条数据

hbase(main):004:0> put 'student', 'mary', 'info:age', '19'

0 row(s) in 0.0860 seconds

从student表中取出mary的数据

hbase(main):005:0> get 'student', 'mary'

COLUMN CELL

info:age timestamp=1516863128560, value=19

1 row(s) in 0.0330 seconds

让student表失效

hbase(main):006:0> disable 'student'

0 row(s) in 2.3010 seconds

删除student表

hbase(main):007:0> drop 'student'

0 row(s) in 1.2880 seconds

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值