HBase(一) —— 基本概念及使用

一、安装&启动

下载

https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.1.8/

快速开始文档,HBase2.1.8
http://hbase.apache.org/2.1/book.html

配置hbase-site.xml

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///usr/local/data/hbase</value>
  </property>
 <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/usr/local/data/zookeeper/data/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>127.0.0.1:2181</value>
  </property>
</configuration>

配置hbase-env.sh

export HBASE_MANAGES_ZK=false

启动

./hbase shell

基本操作

进入控制台

hbase shell

报错

ERROR: KeeperErrorCode = NoNode for /hbase/master

list 显示数据库表

Describe 表名

Scan 表名 查看数据

Disable 表名 表设置成不可用
drop 表名

简介

分布式、可扩展、海量数据存储的NoSQL数据库

存十几、几十亿数据

谷歌论文的3驾马车,mapreduce 、hdfs、bigtable,对应Hadoop、HBase

官方文档

https://hbase.apache.org/

参考文档

数据模型

name space :相当于mysql中的database

habse自带的命名空间:hbase、default

region,表的切片,类似mysql中的表的概念。

row:每行数据都有一个rowkey和多个列组成。

column:列由列族、列限定符组成

时间戳:标识数据的不同版本

cell:rowKey、column Family、column qualifier、timestamp,具有唯一确定性。

逻辑结构

数据模式和关系型数据库挺像,底层物理存储结构是K-V,像一个多维度的map

列、列族、rowKey(行键)

Region是一张表的横向切片。

物理存储结构

物理存储时,会将一行信息拆分成多行,每一行包含rowKey、列族名称、列名称、时间戳、操作类型,value。

当删除数据时,会插入一觉记录,操作类型是DEL,当DEL的时间戳> PUT的时间戳的时候,该条记录不会返回。

不同版本的数据,根据timestamp进行区分

HBase 基本架构

修改就是PUT,因为通过时间戳进行比较。

region,切分、合并操作。

列式存储

问题解决

KeeperErrorCode = NoNode for /hbase/master

应该是HBase没有启动成功,查看日志,如果是Zk的原因,可能是端口占用,或者是因为HBase有自带的Zk,和自己单独安装的Zk冲突了。

参考上面的hbase-env.sh和hbase-site.xml的配置,这里用的就是让HBase使用我们自己安装的Zk。

参考文档

HBase与列存储
5分钟图解Hbase列式存储

原文地址:https://www.cnblogs.com/fonxian/p/11879356.html