zoukankan      html  css  js  c++  java
  • HBase学习记录

    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'))

    结果

     

  • 相关阅读:
    故乡
    webService和Restful
    java多线程(六)线程控制类
    java内存模型
    java多线程(五)线程通讯
    java多线程(四)死锁
    java多线程(三)线程的安全问题
    java多线程(二)线程的生命周期
    java多线程(一)创建线程的四种方式
    Spring Cloud(一)简单的微服务集成Eureka
  • 原文地址:https://www.cnblogs.com/youmuchen/p/9322228.html
Copyright © 2011-2022 走看看