1.HBase跟hive有什么区别?
Hive的定位是数据仓库,虽然也有增删改查,但其删改查对应的是整张表而不是单行数据,查询的延迟较高。其本质是更加方便的使用mr的威力来进行离线分析的一个数据分析工具。
HBase的定位是hadoop的数据库,是一个典型的Nosql,所以HBase是用来在大量数据中进行低延迟的随机查询的。
2.hbase内置过滤器
单个列过滤器,列过滤器,列族过滤器,前缀过滤器,键值过滤器
3.描述Hbase的rowKey的设计原则 Rowkey长度原则?
Rowkey是一个二进制码流,Rowkey 的长度被很多开发者建议说设计在10~100 个字节,不过建议是越短越好,不要超过16 个字节。原因如下:
(1)数据的持久化文件HFile 中是按照KeyValue 存储的,如果Rowkey 过长比如100 个字节,1000 万列数据光Rowkey 就要占用100*1000 万=10 亿个字节,将近1G 数据,这会极大影响HFile 的存储效率;
(2)MemStore 将缓存部分数据到内存,如果Rowkey 字段过长内存的有效利用率会降低,系统将无法缓存更多的数据,这会降低检索效率。因此Rowkey 的字节长度越短越好
(3)目前操作系统是都是64 位系统,内存8 字节对齐。控制在16 个字节,8 字节的整数倍利用操作系统的最佳特性。
4.什么是热点问题?如何解决?
HBase中的行是按照rowkey的字典顺序排序的,这种设计优化了scan操作,可以将相关的行以及会被一起读取的行存取在临近位置,便于scan。rowkey设计是热点的源头。
解决:加盐,哈希,反转,时间戳反转"
5.怎么确定(单元格)坐标?
rowkey确定行,列族和列限定符确定列,就可以确定坐标。
6.hbase RowKey如何设计
1)生成随机数、hash、散列值
2)字符串反转
7.hregionserver 挂掉之后怎么处理?
8.hbase内部机制是什么
Hbase是一个能适应联机业务的数据库系统
物理存储:hbase的持久化数据是存放在hdfs上
存储管理:一个表是划分为很多region的,这些region分布式地存放在很多regionserver上
Region内部还可以划分为store,store内部有memstore和storefile
版本管理:hbase中的数据更新本质上是不断追加新的版本,通过compact操作来做版本间的文件合并
Region的split
集群管理:zookeeper + hmaster(职责) + hregionserver(职责)
9.什么是hbase
一个分布式的、面向列的开源数据库,该技术来源于fay chang所写的google论文”Bigtable:一个结构化数据的分布式存储系统”
HBase在Hadoop之上提供了类似于Bigtable的能力,HBase是Apache的Hadoop项目的子项目,HBase不同于一般的关系数据库,它是一个适合于结构化数存储的数据库,另一个不同的是HBase是基于列而不是基于行
10. hbase RowKey设计原则
)rowkey长度原则
2)rowkey散列原则
3)rowkey唯一原则
11. HBase 作用?
存储大量结果集数据,并提供低延迟的随机查询。说的通俗一些,就是一个超级版的数据库,相比较与mysql、postgresql和oracle、sqlserver等关系型数据库而言,能够存储的数据量更大(比关系型数据库大很多很多),同时查询延迟相比较与其他hadoop产品(pig、hive)要低。
12.hbase内部机制是什么
Hbase是一个能适应联机业务的数据库系统
物理存储:hbase的持久化数据是存放在hdfs上
存储管理:一个表是划分为很多region的,这些region分布式地存放在很多regionserver上
Region内部还可以划分为store,store内部有memstore和storefile
版本管理:hbase中的数据更新本质上是不断追加新的版本,通过compact操作来做版本间的文件合并
Region的split
集群管理:zookeeper + hmaster(职责) + hregionserver(职责)
13.HBase查询的时候,有以下几种方式?
1.通过get方式,指定rowkey获取唯一一条记录
2.通过scan方式,设置startRow和stopRow参数进行范围匹配
3.全表扫描,即直接扫描整张表中所有行记录"
14. 什么是热点问题? 怎么解决?
大量的client直接访问集群的一个或极少数个节点(访问可能是读,写或者其他操作)
解决方法 加盐 哈希 反转 时间戳反转
15.hbase 的结构和作用?
client:使用RPC协议机制与HMaster(管理类)和HRegionServer(数据读写类)进行通信
zookeeper:管理元数据
hmaster:通过zookeeper动态感知hregionserver,保证始终有一个master运行,HMaster,对表的管理,管理hregionserver的负载均衡,调整region分布,region split后,负责新的region的分配hregionserver上的regions迁移
HRegionServer:主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBase中最核心的模块,HRegionServer内部管理了一系列HRegion对象,每个HRegion对应了Table中的一个Region,HRegion中由多个HStore组成。每个HStore对应了Table中的一个ColumnFamily的存储。
HStore存储是HBase存储的核心了,其中由两部分组成,一部分是MemStore,一部分是StoreFiles。
HLog:每个HRegionServer中都有一个HLog对象,HLog是一个实现Write Ahead Log的类,在每次用户操作写入MemStore的同时,也会写一份数据到HLog文件中