HBase 面试题(一)
1、MapRedece从读取数据开始到将最终结果写入HDFS经过哪些步骤?
第一步:inputformat进行数据读读取,将数据发送给split
第二步:split 将数据进行切分,发送给RecordReader
第三步:RR将数据按照行再次切分,将切分好的数据组装成key(行首偏移量),value(每行的数据) 发送给map
第四步:map 进行自定义逻辑的书写,将数据传给Shuffle
第五步:Shuffle中的Partition 将数据key的哈希值与ReduceTask数量取余,余几就分到哪个区
第六步:Shuffle中的Sort 将数据按照一定规则进行排序
第七步:Shuffle中的Combine 将数据在map端先进行局部聚合,这样做的好处数节省了网络带宽的消耗,效率更高
第八步:Shuffle中的Group 将数据相同的key变成一个key,将这个key的Value拼装成一个Value的list
第九步:Reduce 进行自定义计算逻辑的书写,将结果发送给OutputFormat
第十步:OutPutFormat 将结果数据输出保存到HDFS上
2、Hadoop 的组成部分有哪些模块?
HDFS 分布式文件存储系统
管理者:NameNode
工作者:DataNode
辅助者:SecondayNameNode
MapReduce 分布式离线计算框架
Yarn Hadoop资源调度器
管理者:ResourceManager
工作者:NodeManager
3、请阐述一下Hbase详细架构?
Client:
访问数据的入口,包含访问hbase的API接口,维护着一些cache来加快对hbase的访问
Zookeeper:
1.zookeeper的选举机制保证任何时候,集群中只有一个master
2.实时监控Region Server的状态,将Region server的上线和下线信息实时通知给Master
3.存储Hbase的schema
4 存贮所有Region的寻址入口
Master:
1.为Region server分配region
2.负责region server的负载均衡
3.发现失效的region server并重新分配其上的region
4.处理schema(元数据)更新请求
Region server:
1.Region server维护Master分配给它的region,处理对这些region的IO请求
2.Region server负责切分在运行过程中变得过大的region
4、请说一下Hive的内部组成模块,作用分别是什么?
(1)解析器(SQL Parser):解析HQL语义
(2)编译器(Physical Plan):将语HQL根据语义转换成MR程序
(3)优化器(Query Optimizer):对逻辑执行计划进行优化。(对MR程序进行优化)
(4)执行器(Execution):把任务提交到hadoop集群
5.hbase读的过程
1、首先Client先去访问zookeeper,从zookeeper里面获取meta表所在的位置信息
2、Client通过刚才获取到的IP来访问Meta,读取Meta内的数据,
3、Client通过元数据(meta表内的数据)中存储的信息,找到region在哪个HRegionServer ,访问对应的 HRegionServer读取数据
6.hbase数据的写入
1 Client 先访问zookeeper,找到Meta表,并获取Meta表元数据。确定将要写入的数据所对应的HRegion和 HRegionServer服务器。
2 Client向该HRegionServer服务器发起写入数据请求
3 RegionServer先把数据写入到HLog,以防止数据丢失。
4 然后将数据写入到Memstore。
5 若Memstore达到阈值,会将Memstore中的数据flush到Storefifile中
6 Storefifile数量达到阈值(默认3个)时,会触发Compact合并操作,把过多的Storefifile合并成一个大的Storefifile
7.为什么要HBase预分区
增加数据读写效率: 默认方式所有数据存在一个节点上,预分区将数据分散到多各节点上。
负载均衡,防止数据倾斜: 数据的rowkey分成多个区间,每个区间就是一个region,数据写入时,写入自己所在范围的region
方便集群容灾调度region: 将数据分散存储到了多个region中,region的粒度更小 优化Map数量
8.HBase的基本介绍
a.Hbase是建立在hdfs之上的一个数据库,
b.不支持join等SQL复杂操作
c.支持的数据类型:byte[],
d.依靠横向扩展,一个表可以有上十亿行,上百万列。
e.面向列(族)的存储和权限控制
f.对于为空(null)的列,并不占用存储空间,是一个稀疏表
9.distribute by+sort by(相同字段) 与Cluster by的区别
在分区字段和排序字段相同时,这两个可以作用是相同的,只是cluster by 的结果有限制,只能倒序排列,而distribute by+sort by 可根据需求进行排序
10.Hive支持的数据格式
可支持Text,SequenceFile,ParquetFile,ORC格式RCFILE
11.hive自定义函数的类型有哪几种,分别表示什么意思?
1.UDF(User-Defined-Function) 一进一出
2.UDAF(User- Defined Aggregation Funcation) 聚集函数,多进一出。Count/max/min
A长的像个伞,假设数据从下面流入,从上面流出,A就是聚集一堆,流出一个点
同理,T就像Y,由一股分成了好几股。
前提是记住一进一出UDF(输入一个数据,返回另一个数据)
3.UDTF(User-Defined Table-Generating Functions) 一进多出,如lateral view explore)
这让人想到了进进出出。
12.集群扩容,添加新节点需要做哪些准备?
1.配置JDK
2.配置SSH免密钥
3.关闭防火墙
4.关闭selinux
5.修改主机名
6.修改hosts
新节点必须有jdk,节点间沟通需要ssh免密,节点需要关闭防火墙增加效率,
节点需要关闭杀软selinux,节点需要改名方便交流,每个节点需要认识其它节点hosts
13.hadoop 的组成部分?
HDFS 分布式文件存储系统
管理者:NameNode
工作者:DataNode
辅助者:SecondayNameNode
MapReduce 分布式离线计算框架
Yarn Hadoop资源调度器
管理者:ResourceManager
工作者:NodeManager
14.Namenode作用
一:管理,维护文件系统的元数据/名字空间/目录树,管理数据与节点之间的映射关系(管理文件系统中每个文件/目录的block块信息)
二:管理DataNode汇报的心跳日志/报告
三:客户端和DataNode之间的桥梁(元数据信息共享)
15.DataNode作用
一:负责数据的读写操作
二:周期性的向NameNode汇报心跳日志/报告
三:执行数据流水线的复制
16.hbase中如何解决rowkey的热点问题
热点就是数据分布不均匀,集中到一个节点了。
1.哈希(随机数):将哈希值放在高位(每条数据hash值不同)
2.反转:反转固定长度或者数字格式的数据(时间戳反转、手机号反转,订单号反转)
3.加盐:本质时是加随机数,并且放在高位。
17.hbase中Hlog的切分机制
1.当数据写入hlog以后,hbase发生异常。关闭当前的hlog文件
2.当日志的大小达到HDFS数据块的0.95倍的时候,关闭当前日志,生成新的日志
3.每隔一小时生成一个新的日志文件
18.HBase的三个重要机制是什么?
1、flush机制
2、compact机制
3、split机制
把小的storeFile文件合并成大的Storefile文件。
清理过期的数据,包括删除的数据
将数据的版本号保存为3个
当Region达到阈值,会把过大的Region一分为二。
19.Crontab 定时器怎么写?
每个*什么意思,给出一个定时任务,描述出相应的内容
日 月 时 分 星期
20.SecondaryNamenode 的工作机制是什么?
NameNode创建一个Edits.new
SNN从NameNode节点拷贝Fsimage和Edits文件到SNN
SNN将两个文件导入内存进行合并操作生成一个新的Fsimage.ckpt文件
SNN将新的Fsimage.ckpt发送到NameNode节点
重命名为Fsimage替换原先的Fsimage
原先的Edits生成Edits.new文件
将Edits替换为新的Edits.new
HBase 面试题(一)相关推荐
- 【大数据HBase系列】 HBase面试题整理
文章目录 HBase面试题整理(一) 1. HBase的特点是什么? 2.HBase和Hive的区别? 3.HBase适用于怎样的情景? 4.描述HBase的rowKey的设计原则?(☆☆☆☆☆) 5 ...
- hbase面试题整理
一. 简单介绍下Hbase (1) Hbase一个分布式的基于列式存储的数据库,基于Hadoop的hdfs存储,zookeeper进行管理. (2) Hbase适合存储半结构化或非结构化数据,对于数据 ...
- HBase面试题汇总
1.HBase中Memstore在何时进行数据的flush操作? 答: Memstore级别:当MemStore的大小达到设置阈值(默认128M),会触发flush操作. <property&g ...
- HBASE面试题,希望能够帮助到你
1.HBase是什么? 答:hbase是开源的非关系型分布式数据库,拥有高可靠性.高性能.面向列.可伸缩的分布式存储系统 2.HBase存储结构? 答: 3.HBase中rowkey设计原则? 答:( ...
- 大数据学习之Hbase面试题
1,hbase读流程 首先通过meta表找到要读数据的region所在的RegionServer,然后去BlockCash中读取,如果没有就去Memstore中读取,如果也没有,那就去Hfile中去读 ...
- Hbase面试题总结(大数据面试)
hbase概述 hbase是建立的hdfs之上,提供高可靠性.高性能.列存储.可伸缩.实时读写的数据库系统. 它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数 ...
- Hbase面试题(持续更新)
1.每天百亿数据存入HBase,如何保证数据的存储正确和在规定的时间里全部录入完毕,不残留数据 1)百亿数据:证明数据量非常大 2)存入HBase:证明是跟HBase的写入数据有关 3)保证数据的正确 ...
- 列一些Hbase面试题
Hbase Hbase是怎么写数据的? HDFS和HBase各自使用场景 Hbase的存储结构 热点现象(数据倾斜)怎么产生的,以及解决方法有哪些 HBase的 rowkey 设计原则 HBase的列 ...
- HBase面试题精讲
1. HBase的特点是什么? 1)大:一个表可以有数十亿行,上百万列: 2)无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中 不同的行可以有截然不同的列: 3)面向 ...
最新文章
- C#操作Excel文件(转)
- java过滤4字节_乐字节Java8核心特性实战之四:方法引用
- 11部高分学科纪录片,助力孩子涨姿势拓视野~
- Shell编程:简洁的 Bash Programming 技巧
- 【病毒】开机弹出“tlntsvi_6635.exe程序”解决方案
- 荣耀双十一开门红:斩获多品类销量及销售额冠军
- word图片靠右_如何设置word图片边缘透明
- 钉钉小程序使用vant_高效钉钉小程序开发丨详解Hello,dingtalk
- c mysql分页存储过程_mysql 分页存储过程调用报错
- Eclipse中如何安装Spring Tool Suite(STS)
- 如何选择合适的代理IP?以下3点需要注意
- 什么是Pagerank?Pagerank算法介绍与计算公式
- 最全的Java笔试题库之选择题篇-总共234道【61~120】
- 35岁的程序员何去何从?--记PMP考试感悟
- BI 报表工具如何与 springBoot 框架集成
- 科普一下:Y2K千年虫问题
- $watch和watch属性的使用
- H5 页面适配所有 iPhone 和安卓机型的六个技巧
- 卡马克快速平方根(平方根倒数)算法(转)
- PHP自学笔记 | phpmyadmin无法访问——开放888端口