文章目录
什么是Hbase
HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来 存储非结构化和半结构化的松散数据
Hbase的本质
面向列的分布式数据库
hbase来源于谷歌的哪篇论文
BigTable
Hbase端口号
16010
Hbase的数据的维度及代表的意思
hbase可以视为一个“四维坐标”数据 ,维度分别代表[行键, 列族, 列限定符, 时间戳]
rowkey设计原则
唯一原则:必须在设计上保证其唯一性,Rowkey是按照字典顺序存储的,所以设计Rowkey时,要充分利用这一特点,将往常一起读取的数据存储到一块。
长度原则:越短越好,最大长度为64Kb,太长的影响有两点。
(1)极大影响了HFile的存储效率。
(2)缓存memstore不能得到有效利用,缓存不能存放太多的信息,造成检索效率的降低。
散列原则: 由于region存储是按行键存储的,如果行键的值都是类似的那就容易导致数据都堆在一个Rowkey上产生热点问题。所以可以通过一下方法让Rowkey尽量散列化。
(1)加盐在Rowkey前生成随机数。
(2)反转把最没有用的放在前面以增加随机性。
HBASE原理机制
(1)HBASE是一款应用在大数据情境下的数据库。
(2)HBASE是分布式的利用hdfs作为存储系统的面向列的数据库。
(3)HBASE的集群中主要由Master和Regionserver以及zookeeper组成。Master为Regionserver分配region
(4)HBASE使用Memstore和storeFile存储对表的更新,用户写入的数据首先会放入Memstore,当Memstore满了以后会flush成一个storeFile(底层实现是HFile)。
(5)HBASE使用和bigTable非常相同的数据模型。用户存储数据行在一个表里,在HBASE中数据按主键排序,同时表按主键划分多个Region。
Hbase怎么更新数据
通过=追版本形式执行更新操作。
并不会删除数据旧的版本,而是生成一个新的版本,旧有的版本仍然保留(这是和HDFS只允许追加不允许修改的特性相关的)
HBase系统架构由什么组成
客户端、Zookeeper服务器 、Master(一个)、Region服务器(多个)
HBase中最核心的模块是?
Region服务器
HBase最小存储数据的单元是?HBase在hdfs上存储的形式是?
HFile
HBase的相关操作命令(对表、对数据)
用,
分隔 用‘ ’
注明
对表
(1)创建表 create
语句:create 't1','f1' ti为表名,f1为列族
(2)修改表 alter
语句:alter 't1','f2' 增加一个列族
(3)删除表 drop
语句:diasble 't1' drop 't1' 删除表时分两步,先disable再drop
(4)查看表的结构 describe
语句:describe 't1'
(5)查询表中的数据行数 count
count 't1', {INTERVAL => 100, CACHE => 500}
语句:查询表t1中的行数,每100条显示一次,缓存区为500
(6)扫描表 scan
语句:scan 't1',{LIMIT=>5} 扫描表t1的前5条数据
语句:scan 't1',{STARTROW=>'2',STOPROW=>'4'} 扫描表t1的第2行到第4行
语句: scan 'score',{COLUMNS=>'egrade:cet4',VERSIONS=>5} 扫描表score的grade:cet4,版本号为5的信息
对数据
(1) 插入、添加、修改数据 put
语句:put 't1','001','f1:col1','value01' t1是表名,001是行键、f1是列族、col1是列、value01是值
(2)查询、取出数据 get
语句:get 't1','001', 'f1:col1‘
(3)删除数据 delete
语句:delete 't1','001','f1:col1'
删除整行数据 deleteall
语句:deleteall 't1','001'
删除表中的所有数据 truncate
语句:truncate 't1'