• HBase学习笔记


    关键类:

    HBaseAdmin 管理Hbase的,主要负责DDL操作

    HTable 管理表中数据,主要负责DML操作

    1、为了避免热点,更多的建表方法

    在Shell中:

     create 'tb_splits',{NAME=>'cf',VERSION=>3},{SPLITS=>['a','b','c']}
    --直接创建多个region的table,每个region的startkey和endkey由参数依次指定,第一个region没有开始startkey,最后一个没有endkey
    --rowkey参数的选择必须有意义,才能实现均匀分布,否则分多个region无意义
    --多个region可以分布在多个regionserver上,添加数据的时候数据可以均匀分布在region中,实现负载均衡

    在Java中

    hBaseAdmin.createTable(tableDescriptor,Bytes.toBytes(0L),Bytes.toBytes(100L),10);
    hBaseAdmin.createTableAsync(tableDescriptor,keyValueArray);
    

    2、原子操作

    原子插入(compare-and-set)

    hTable.checkAndPut(row,family,qualifier,value,put)
    

    原子删除(compare-and-delete)

    hTable.checkAndDelete(row,family,qualifier,value,delete)
    

    3、计数器:

    用于实时收集信息,原子操作

    在Shell下操作

    incr 't1','20150226','daily:hits',1
    -- t1 表名
    --20150226 行健
    -- daily是列族
    --hits 是列,最后是值
    get_counter 't1','row_key','daily:hits' 

    在java中操作

    hTable.incrementColumnValue(...)
    hTable.increment(increment)
    

      

    HBase的数据格式:

    1、Region 存储数据有三部分组成,包括HLog、MemStore、HStore

    2、WAL(write-ahead-log),RegionServer共享一个HLog实例。

    往region写数据之前,先往HLog里面写数据,同时往MemStore里面写

    HLog是为了保证事务,MemStore保证客户端访问速度

    *当MemStore文件快满的时候,会合并并写StoreFile写入HDFS;当StoreFile很多的时候,会合并合并为一个大文件

    *HBase还有个存储结构,LMS树的文件会不断合并;和一般的索引文件不同,索引一般用B+树结构:宽度非常宽,深度很浅

    HFile 是存储数据最根本的,storefile是对hfile的简单封装

  • 相关阅读:
    C#设计模式(2)——简单工厂模式
    C#设计模式(1)——单例模式
    静态变量与静态方法
    在服务器操作系统上使用TeamViewer
    51 nod 1439 互质对(Moblus容斥)
    51 nod 1495 中国好区间
    51nod 1103 N的倍数(抽屉原理)
    51 nod 1427 文明 (并查集 + 树的直径)
    51nod 1486 大大走格子(容斥原理)
    hihocoder 1388 fft循环矩阵
  • 原文地址:https://www.cnblogs.com/hpuCode/p/5217135.html
Copyright © 2020-2023  润新知