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 面试题(一)相关推荐

  1. 【大数据HBase系列】 HBase面试题整理

    文章目录 HBase面试题整理(一) 1. HBase的特点是什么? 2.HBase和Hive的区别? 3.HBase适用于怎样的情景? 4.描述HBase的rowKey的设计原则?(☆☆☆☆☆) 5 ...

  2. hbase面试题整理

    一. 简单介绍下Hbase (1) Hbase一个分布式的基于列式存储的数据库,基于Hadoop的hdfs存储,zookeeper进行管理. (2) Hbase适合存储半结构化或非结构化数据,对于数据 ...

  3. HBase面试题汇总

    1.HBase中Memstore在何时进行数据的flush操作? 答: Memstore级别:当MemStore的大小达到设置阈值(默认128M),会触发flush操作. <property&g ...

  4. HBASE面试题,希望能够帮助到你

    1.HBase是什么? 答:hbase是开源的非关系型分布式数据库,拥有高可靠性.高性能.面向列.可伸缩的分布式存储系统 2.HBase存储结构? 答: 3.HBase中rowkey设计原则? 答:( ...

  5. 大数据学习之Hbase面试题

    1,hbase读流程 首先通过meta表找到要读数据的region所在的RegionServer,然后去BlockCash中读取,如果没有就去Memstore中读取,如果也没有,那就去Hfile中去读 ...

  6. Hbase面试题总结(大数据面试)

    hbase概述 hbase是建立的hdfs之上,提供高可靠性.高性能.列存储.可伸缩.实时读写的数据库系统. 它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数 ...

  7. Hbase面试题(持续更新)

    1.每天百亿数据存入HBase,如何保证数据的存储正确和在规定的时间里全部录入完毕,不残留数据 1)百亿数据:证明数据量非常大 2)存入HBase:证明是跟HBase的写入数据有关 3)保证数据的正确 ...

  8. 列一些Hbase面试题

    Hbase Hbase是怎么写数据的? HDFS和HBase各自使用场景 Hbase的存储结构 热点现象(数据倾斜)怎么产生的,以及解决方法有哪些 HBase的 rowkey 设计原则 HBase的列 ...

  9. HBase面试题精讲

    1. HBase的特点是什么? 1)大:一个表可以有数十亿行,上百万列: 2)无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中 不同的行可以有截然不同的列: 3)面向 ...

最新文章

  1. C#操作Excel文件(转)
  2. java过滤4字节_乐字节Java8核心特性实战之四:方法引用
  3. 11部高分学科纪录片,助力孩子涨姿势拓视野~
  4. Shell编程:简洁的 Bash Programming 技巧
  5. 【病毒】开机弹出“tlntsvi_6635.exe程序”解决方案
  6. 荣耀双十一开门红:斩获多品类销量及销售额冠军
  7. word图片靠右_如何设置word图片边缘透明
  8. 钉钉小程序使用vant_高效钉钉小程序开发丨详解Hello,dingtalk
  9. c mysql分页存储过程_mysql 分页存储过程调用报错
  10. Eclipse中如何安装Spring Tool Suite(STS)
  11. 如何选择合适的代理IP?以下3点需要注意
  12. 什么是Pagerank?Pagerank算法介绍与计算公式
  13. 最全的Java笔试题库之选择题篇-总共234道【61~120】
  14. 35岁的程序员何去何从?--记PMP考试感悟
  15. BI 报表工具如何与 springBoot 框架集成
  16. 科普一下:Y2K千年虫问题
  17. $watch和watch属性的使用
  18. H5 页面适配所有 iPhone 和安卓机型的六个技巧
  19. 卡马克快速平方根(平方根倒数)算法(转)
  20. PHP自学笔记 | phpmyadmin无法访问——开放888端口

热门文章

  1. 我想建立网站,网站搭建需要哪些大体步骤?
  2. 项目管理工具DHTMLX Gantt灯箱元素配置教程:配置灯箱元素
  3. python数学符号代码_用Python学数学之Sympy代数符
  4. 刚刚整理好-汉字转拼音缩写的函数(C#)
  5. 建模大佬都不会外传的角色手办制作流程
  6. 读书笔记--Java核心技术--高级特征
  7. 查看患者信息java_Java通过反射查看类的信息示例
  8. 2019「友盟杯」数据分析大赛结果公布
  9. 天猫精灵连接蓝牙摸索1 关于阿里巴巴蓝牙MESH芯片TG7100B LINUX 开发环境塔建图文说明
  10. 深度学习中使用Screen 指令进行离线训练