HBase学习记录

时间:2023-03-09 06:32:25
HBase学习记录

HBase

使用docker搭建参考https://blog.****.net/baifanwudi/article/details/78498325

搭建好以后,网页端可以看到:

HBase学习记录

terminal 界面

HBase学习记录

HBase是一种构建在HDFS之上的分布式、面向列的存储系统。在需要实时读写,随机访问超大规模数据集时,可以使用HBase。

HBase的特点

1、大,一个表可以有上一行,上百万行。

2、面向列:面向列表(簇)的存储和权限控制,列(簇)独立检索。

3、稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以设计得非常稀疏。

4、无模式:每一行都有一个可以排序的主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有截然不同的列。

5、数据多版本,每个单元中的数据可以有多个版本,默认情况下,版本号自动分配,版本号就是单元格插入时的时间戳。

6、数据类型单一:HBase中的数据都是字符串,没有类型。

基本操作

whoam i     查看当前用户身份

list      查看有哪些表

create 't1' ,{NAME => 'f1',VERSIONS => '2'}   创建表,family name是f1

disbale 't1' 然后 drop 't1'   删除表

describe 't1'     查看表't1'结构

put 't1','rowkey001','f1:col1','value01' 在ti表中添加一行记录,其中rowkey是rowkey001,family name是f1,columu name是col1,value是value01。

get 't1' ,'rowkey001'获取表't1'的'rowkey001'的所有信息

scan 't1' 获取表t1的所有信息。

HBase学习记录

HBase学习记录

python 2 连接 HBase

首先安装 包

pip install thrift

pip install hbase-thrift

然后可以连接过去

from thrift.transport import TSocket,TTransport
from thrift.protocol import TBinaryProtocol
from hbase import Hbase # thrift默认端口是9090
socket = TSocket.TSocket('localhost',9090)
socket.setTimeout(5000) transport = TTransport.TBufferedTransport(socket)
protocol = TBinaryProtocol.TBinaryProtocol(transport) client = Hbase.Client(protocol)
socket.open() print(client.getTableNames())
print(client.get('t1','rowkey001','f1:col1'))

结果

HBase学习记录