大数据的那些面试题及答案(二)HBase

文章目录

    • 什么是Hbase
    • Hbase的本质
    • hbase来源于谷歌的哪篇论文
    • Hbase端口号
    • Hbase的数据的维度及代表的意思
    • rowkey设计原则
    • HBASE原理机制
    • Hbase怎么更新数据
    • HBase系统架构由什么组成
    • HBase中最核心的模块是?
    • HBase最小存储数据的单元是?HBase在hdfs上存储的形式是?
    • HBase的相关操作命令(对表、对数据)

什么是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'

你可能感兴趣的:(HBase)