hbase

相关资料

  • 官网 https://hbase.apache.org/

hbase安装

  • 拉取镜像
    docker pull harisekhon/hbase
    
  • 启动
    docker run -d -h docker-hbase -p 2181:2181 -p 8080:8080 -p 8085:8085 -p 9090:9090 -p 9000:9000 -p 9095:9095 -p 16000:16000 -p 16010:16010 -p 16201:16201 -p 16301:16301 -p 16020:16020 --name hbase harisekhon/hbase
    
  • 修改host(window)
    127.0.0.1 docker-hbase
    

hbase数据模型

  • 表(Table)
    HBase 会将数据组织进一张张的表里面,一个 HBase 表由多行组成。

  • 行(Row)
    HBase 中的一行包含一个行键和一个或多个与其相关的值的列。在存储行时,行按字母顺序排序。出于这个原因,行键的设计非常重要。目标是以相关行相互靠近的方式存储数据。常用的行键模式是网站域。如果你的行键是域名,则你可能应该将它们存储在相反的位置(org.apache.www,org.apache.mail,org.apache.jira)。这样,表中的所有 Apache 域都彼此靠近,而不是根据子域的第一个字母分布。

  • 列(Column)
    HBase 中的列由一个列族和一个列限定符组成,它们由:(冒号)字符分隔。

  • 列族(Column Family)
    出于性能原因,列族在物理上共同存在一组列和它们的值。在 HBase 中每个列族都有一组存储属性,例如其值是否应缓存在内存中,数据如何压缩或其行编码是如何编码的等等。表中的每一行都有相同的列族,但给定的行可能不会在给定的列族中存储任何内容。

    列族一旦确定后,就不能轻易修改,因为它会影响到 HBase 真实的物理存储结构,但是列族中的列标识(Column Qualifier)以及其对应的值可以动态增删。

  • 列限定符(Column Qualifier)
    列限定符被添加到列族中,以提供给定数据段的索引。鉴于列族的content,列限定符可能是content:html,而另一个可能是content:pdf。虽然列族在创建表时是固定的,但列限定符是可变的,并且在行之间可能差别很大。

  • 单元格(Cell)
    单元格是行、列族和列限定符的组合,并且包含值和时间戳,它表示值的版本。

  • 时间戳(Timestamp)
    时间戳与每个值一起编写,并且是给定版本的值的标识符。默认情况下,时间戳表示写入数据时 RegionServer 上的时间,但可以在将数据放入单元格时指定不同的时间戳值。

  • 示例

    row1 column=personal:name, timestamp=1418051555, value=raju
    row1 column=personal:city, timestamp=1418275907, value=Hyderabad
    row1 column=professional:designation, timestamp=14180555,value=manager
    row1 column=professional:salary, timestamp=1418035791555,value=50000
    
  • 数据类型

shell脚本操作

脚本示例说明
hbase shell进入命令行
create ‘<table name>’,’<column family>’create ‘test’,‘course’创建表
get ’<table name>’,’row1’get ‘emp’, ‘1’获取单行数据
put ‘table name’,’row ’,‘Column family:column name’,’new value’put ‘emp’,‘row1’,‘personal:city’,‘Delhi’写数据
scan ‘<table name>’scan ‘emp’扫描
delete ‘<table name>’, ‘<row>’, ‘<column name >’, ‘<time stamp>’delete ‘emp’, ‘1’, ‘personal data:city’,1417521848375删除数据
deleteall ‘<table name>’, ‘<row>’deleteall ‘emp’,‘1’删除所有数据

java连接

  1. 下载hadoop本地开发环境
    https://github.com/steveloughran/winutils

  2. 配置HADOOP_HOME环境变量
    配置完成后需要重启电脑,如果不想重启加入如下代码

    System.setProperty("hadoop.home.dir", "D:\\Program Files\\hadoop-2.7.1");
    
  3. java包引入

     <dependency>
     	<groupId>org.apache.hbase</groupId>
        <artifactId>hbase-client</artifactId>
        <version>1.3.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-server</artifactId>
        <version>1.3.1</version>
    </dependency>
    
  4. 使用示例

    Configuration conf = HBaseConfiguration.create();
    //设置zk集群地址,这里需要修改windows下的hosts文件
    //conf.set("hbase.zookeeper.quorum", "master:2181,slave1:2181,slave2:2181");
    conf.set("hbase.master", "127.0.0.1:16000");
    //建立连接
    Connection conn = ConnectionFactory.createConnection(conf);
    
    Table htable = conn.getTable(TableName.valueOf("test"));
    //创建put对象
    //创建rowkey
    Put put = new Put(Bytes.toBytes("row2"));
    put.addColumn(Bytes.toBytes("cf"), Bytes.toBytes("a"), Bytes.toBytes("value"));
    //添加put到表对象
    htable.put(put);
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值