千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 大数据面试题:经典面试题答疑(四)

大数据面试题:经典面试题答疑(四)

来源:千锋教育
发布人:syq
时间: 2022-06-08 16:47:00 1654678020

  大数据经典面试题答疑---经常问的原理问题总结(系列文章,持续更新),帮你解决大数据开发中的困扰。

  1. hive+MapReduce

  答案区:

  1.hbase

  1.1. hbase基础

  1.1.1. hbase数据模型

wpsAWvrBL

  1.1.2. Row Key

  概括:最大64KB;在hbase中以字节数组保存;不同rowkey按字典顺序排序

  1.1.3. Columns Family

  列簇 :HBASE表中的每个列,都归属于某个列族。列族是表的schema的一部分(而列不是),必须在使用表之前定义。列名都以列族作为前缀。例如 courses:history,courses:math都属于courses 这个列族。

  1.1.4. Cell

  由{row key, columnFamily, version} 唯一确定的单元。cell中 的数据是没有类型的,全部是字节码形式存贮。

  关键字:无类型、字节码

  1.1.5. Time Stamp

  HBASE 中通过rowkey和columns确定的为一个存贮单元称为cell。每个 cell都保存 着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是 64位整型。时间戳可以由HBASE(在数据写入时自动 )赋值,此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。如果应用程序要避免数据版 本冲突,就必须自己生成具有唯一性的时间戳。每个 cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。

  为了避免数据存在过多版本造成的的管理 (包括存贮和索引)负担,HBASE提供 了两种数据版本回收方式。

  一是保存数据的最后n个版本;

  二是保存最近一段 时间内的版本(比如最近七天)。用户可以针对每个列族进行设置。

  1.2. 原理

wps16F6FI

  Region是Hbase中分布式存储和负载均衡的最小单元,不同Region分布到不同RegionServer上。

04

  Region虽然是分布式存储的最小单元,但并不是存储的最小单元。Region由一个或者多个Store组成,每个store保存一个columns family;每个Strore又由一个memStore和0至多个StoreFile组成,StoreFile包含HFile;memStore存储在内存中,StoreFile存储在HDFS上。

05

  1.2.1. 写流程:

  1、client向hregionserver发送写请求。

  2、hregionserver将数据写到hlog(write ahead log)。为了数据的持久化和恢复。

  3、hregionserver将数据写到内存(memstore)

  4、反馈client写成功。

  1.2.2. 数据flush:

  1、当memstore数据达到阈值(默认是128M)或region中所有Memstore的大小总和达到了上限(默认 2*128 = 256MB)会触发将将数据刷到硬盘,将内存中的数据删除,同时删除Hlog中的历史数据。

  2、并将数据存储到hdfs中。

  3、在hlog中做标记点。

  1.2.3. 数据compact(合并):

  将storefile 中的hfile 合并成大的hfile;

  在hbase中主要存在两种类型的compaction合并

  minor compaction 小合并

  在将Store中多个HFile合并为一个HFile,对于超过了TTL的数据、删除的数据仅仅只是做了标记。

  major compaction 大合并

  合并Store中所有的HFile为一个HFile,清理三类无意义数据:被删除的数据、TTL过期数据、版本号超过设定版本号的数据。默认7天执行一次,并且性能消耗非常大。手动触发:major_compact tableName

  1.2.4. 读流程

  1、通过zookeeper和-ROOT- .META.表定位region

  2、hbase会首先在布隆过滤器中查询(如果设置的话),然后MemStore,BlockCache(LRUCache存放最近读取数据),磁盘的HFile,找到并存储到BlockCache

  3、数据块会缓存

  1.2.5. hregionserver的职责

  HRegion Server主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBASE中最核心的模块。

  HRegion Server管理region。

  1.3. hbase 布隆过滤器

  不存在的一定不存在,存在的不一定存在;

  1.3.1. 布隆过滤器的存储在哪?

  对于hbase而言,当我们选择采用布隆过滤器之后,HBase会在生成StoreFile(HFile)时包含一份布隆过滤器结构的数据,称其为MetaBlock;MetaBlock与DataBlock(真实的KeyValue数据)一起由LRUBlockCache维护。

  cell较小的不适用布隆过滤器;

  按行读,更新数据量大,范围广(多列),用row;

  1.3.2. 协处理器

  observe:通过钩子函数,做一些预处理和后处理;类似于 RDBMS 中的触发器,主要在服务端工作,主要有三种

  regionObserve:处理数据修改数据;如:创建二级索引

  maserObserve:管理DDL类型操作

  WALObserve:提供针对WAL的钩子函数

  endpoint:类似于 RDBMS 中的存储过程,主要在服务端工作,可以实现 min、max、avg、sum、distinct、group by 等功能。

  更多关于大数据培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT