HBase
使用docker搭建参考https://blog.csdn.net/baifanwudi/article/details/78498325
搭建好以后,网页端可以看到:
terminal 界面
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的所有信息。
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'))
结果