Hbase笔记(不全面)

因为看的时候不是在一个电脑上看的,所以笔记没有整理全面。

create 'mytable', 'cf'  --表名,列族名
put 'mytable', 'first','cf:message','hello hbase'  --表名,行名键,列族:列名,数据
get 'mytable','first'  --表名,行键(读取一行数据)
scan 'mytable' --(返回的行是按行的名字排序的)
第二章
create 'users','info'  
hbase中必须至少有一个列族,表创建后列族还可以更改
describe 'users'  --查看表的所有默认参数,显示表的名字和列族的列表
hbase客户端配置文件:hbase客户端应用需要一份hbase配置信息来访问hbase-zookeeper quorum地址。
五个基本命令:get,put,delete,scan,increment(递增)。
数据操作:
        HTablePool pool=new HTablePool();
        HTableInterface usersTable=pool.getTable(usersTable);
        Put p=new Put(Bytes.toBytes("TheRealMT"));//TheRealMT行键
        p.add(..,..,..);//三个参数分别是列族,列,数值
        userTable.put(p);
        userTable.close();
hbase中修改数据使用的方式与存储新数据一样:创建put对象,在正确的坐标上给出数据,提交到表。
默认情况下,执行写入时会写到两个地方:预写式日志(WAL或者称为HLog)和MemStore。
MemStore是内存里的写入缓冲区,HBase中数据在永久写入磁盘之前在这里累计。
    当MemStore填满后,其中的数据会刷写到硬盘,生成一个HFile。HFile是HBase使用的底层存储格式。
    HFile对应于列族,一个列族可以有多个HFile,但一个HFile不能存储多个列族的数据。在集群的每个节点上,每个列族有一个MemStore。
每台HBase服务器上都有一个WAL,这台服务器上的所有表(和他们的列族)共享这个WAL。
读取数据操作:
            Get g=new Get(Bytes.toBytes("TheRealMT"));
            Result r=userTable.get(g);
BlackCache设计用来保存从HFile里读入内存的频繁访问的数据,避免硬盘度读。每个列族都有自己的BlackCache。
BlackCache和MemStore在一个JVM堆里。
HFile物理存放形式是一个block的序列外加这些block的索引。
block是建立索引的最小数据单位,也是从硬盘读取的最小数据单位。
block大小按照列族设定,默认是64KB。

第四章
表的模式设计:
            这个表应该有多少个列族
            列族使用什么数据
            每个嫘祖应该多少个列
            列名应该是什么,尽管列名不必在建表时定义,但是读写数据时是需要知道的
            单元存放什么数据
            每个单元存储多少个时间版本
            行键结构是什么,应该包括多少信息
表设计:
      定义表的访问模式,即怎么用这张表,想用这张表回答什么问题
      读模式与写模式
      
HFile里的keyvalue对象存储列族名字。使用短的列族名字在减少硬盘和网络IO方面很有帮助。这种优化方法也可以应用到行键、列限定符、
     甚至单元格。紧凑存储数据意味着可以减少IO负载。
宽表,高表
优化访问模式:1.调整表设计2.使用过滤器
对于Hbase集群,最消耗计算资源的操作发生在使用服务器端过滤扫描结果的时候。
尽可能分离不同访问模式
一个表按照行顺序存放在多个region里,一个regionserver管理多个region,这些region可能不是同一个表的;
数据是按照列族物理存储的,一个列族有一个块缓存和一个memstore;列族数据存放在多个HFile里面;
HFile存放多个block和这些block的索引。
一个hbase集群有-root-和.meta.文件(可以称为系统文件)
集群:master(可以有多个,但是同一时间只有一个处于激活状态),多个regionserver;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值