Hbase笔记(二)之---原理篇

1、Hbase数据模型:

位置:Hbase中的数据存储在表中;

:Hbase的表是schema less表,没有字段的定义和约束类型;

表中数据:Hbase的表中数据是以Key-Value的形式存储的,以Key的首字母字典顺序排列;

Key:一个完整的Key,包含:rowkey(主键)、列族(column family)、qualifier(属性)、timeStamp(时间戳);

Value:一个Value本质上是一个任意数据序列化之后的二进制字节数组;

表的纵向划分:Hbase的表在纵向上划分为列族;

表的横向划分:Hbase的表在横向上划分为Region;

Region:Hbase中表的行范围数据;Region划分按照数据量的大小,一个region只能交给一个RegionServer进行管理,但是一个RegionServer可以有同时管理多个Region。

2、Hbase的物理存储模型:

数据存储形式:Hbase表中的数据是以Key-Value的形式存储的;

②不同Region的数据在HDFS中存储在不同的目录中;

③同一个Region中不同的列族的数据在不同目录中。

3、Hbase的分布式机制:

①HMaster和HRegionServer之间的协调感知通过ZooKeeper进行;

②一个表会被分成多个Region被RegionServer管理;

③一个Region中的数据一旦增长到一个阈值,会被RegionServer分裂为两个Region(开始默认一个Region,或者创建时进行预分Region,减少插入热点问题)。

4、Hbase默认保留版本号:

以前三个版本,现在默认保留一个版本({VERSIONS=1})

5、数据插入Hbase的几种方式:

(1)put:

①一次一次的put,或者将每次生成的put放入list集合中;

②一行数据,请求一次(RPC请求);Hbase每次都需要进行 处理,数量庞大,效率低下。

(2)缓存插入(mutation):

①批量插入,数据到达一定的阈值之后请求一次(RPC请求);

②效率有提高,但是还是要进行RPC请求,Hbase也需要进行大量处理,治标不治本。

(3)bulkload方式:

bulkload:将静态的文件生成hflie文件,加载(load)到指定目录下。

两种方式:

①操作shell脚本,转换csv文件为hfile文件–>importTsv工具;

②操作用MR程序,转换普通文件为hfile文件,直接将数据导入到hbase的表中。

注意事项:

①利用MR程序导入数据,需要提前设计好rowkey,同时需要考虑查询热点问题(导入数据,不存在插入(put)热点问题);

②为方便排序,主键需要统一长度;

③操作时,主键不能重复,不然可能会出现后面的主键覆盖前面的,一般在选定好的key后加上时间戳保证不重复的主键;

④选择主键时,考虑到查询速度最快,需要按照业务需求(如:用户最喜欢用的词)进行选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值