他人真实面试问题
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流。QQ911283415
1.HBase的架构和基本原理
Hbase以表的方式组织数据,
表由行(Row)以及列(Column)组成,行由row key和一个或多个列及其值组成(存储是按照row key的字典顺序排序,row key的设计非常重要!!),
列必须属于某一列族(Column family),一个列族可以有一各或多个列(一列由列簇和列修饰符组成,他们通常由冒号(:) 分隔),其在存储架构中就是一个Hfile。
Hbase中的列可以达到百万级,列中的数据可以是稀疏的,空值并不占用存储空间。
数据按主键排序,同时表按主键划分为多个Region。底层是LSM树(Long-Structed Merge Tree)。
对于以上叙述,表的简略结构:(逻辑模型)
Hbase简略架构图如下:
接下来对Zookeeper、HMaster、HRegionServer、HRegion、Store、MemStore、StoreFile、HFile、HLog等做个简单叙述:
Zookeeper
HMaster
(主要负责table和region的管理工作)
HRegionServer
(主要负责响应用户对其上region的I/O请求,向HDFS读写数据,HbasHBase核心模块)
Region
(图中为Hregion,也就是指一个Table的分区)
StoreFile
(底层存储格式是HFile,HBase中最小的存储单元)
HFile[1]
(HFile基于Hadoop的TFile类实现,模仿Google的BIgTable论文中的SSTable格式。)
HLog(WAL log)
(HLog是WAL的核心实现类)
2.HBase与传统关系型数据库(如MySQL)的区别
3.读写性能对比(读快还是写快)
4.Hbase的设计有什么心得?
5.Hbase的操作是用的什么API还是什么工具?
6.你们hbase里面是存一些什么数据
7.知道spark怎么读hbase吗?
8.做过hbase的二级索引吗?
9.Hbase的PUT的一个过程
以下是我自己想的问题
1.描述一下Region切分的过程?
2.Hbase读取数据的流程?
3.HBase的缺点?(优点已经在4中体现)
4.什么时候适合使用HBase(应用场景)
2018/3/12增
5.Client会缓存.META.的数据,该数据更新了怎么办?
(参考自[5])
注
注1:对应上文的表结构的多维度Map映射表形式理解
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
参考
[1]对于HFile和Hlog更为细致的讲解见:深入学习HBase架构原理
[2]文章可能会有点旧:HBase高性能复杂条件查询引擎
[3]Hbase与传统关系型数据库对比
[4]《Hbase企业应用开发实战》第270页
[5]简书-飞鸿无痕:Hbase技术详细学习笔记
转载地址:https://blog.csdn.net/HaixWang/article/details/79514886