本文主要是介绍大数据技术之_32_大数据面试题_01_Hive 基本面试 + Hive 数据分析面试 + Flume + Kafka 面试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
大数据技术之_32_大数据面试题_01
- 一、Hive 基本面试
- 1、什么是 metastore
- 2、metastore 安装方式有什么区别
- 3、什么是 Managed Table 跟 External Table?
- 4、什么时候使用 Managed Table 跟 External Table?
- 5、hive 有哪些复合数据类型?
- 6、hive 分区有什么好处?
- 7、hive 分区跟分桶的区别
- 8、hive 如何动态分区
- 9、map join 优化手段
- 10、如何创建 bucket 表?
- 11、hive 有哪些 file formats
- 12、hive 最优的 file formats 是什么?
- 13、hive 传参
- 14、order by 和 sort by 的区别
- 15、hive 跟 hbase 的区别
- 二、Hive 数据分析面试
- 1、分组 TopN,选出今年每个学校、每个年级、分数前三的科目
- 2、今年,北航,每个班级,每科的分数,及分数上下浮动 2 分的总和
- 3、where 与 having:今年,清华 1 年级,总成绩大于 200 分的学生以及学生数
- 三、Flume + Kafka 面试
- 1、flume 如何保证数据的可靠性?
- 2、kafka 数据丢失问题,及如何保证?
- 3、kafka 工作流程原理
- 4、kafka 保证消息顺序
- 5、zero copy 原理及如何使用?
- 6、spark Join 常见分类以及基本实现机制
一、Hive 基本面试
1、什么是 metastore
metadata 即元数据。包含 database、tabel、column names、partitions 信息、bucketing 信息等的元数据信息。
元数据默认是存储在 Derby 中,建议存储在关系型数据库中。
2、metastore 安装方式有什么区别
内嵌模式
内嵌模式使用的是内嵌的 Derby 数据库来存储元数据,也不需要额外起 Metastore 服务。这个是默认的,配置简单,但是一次只能一个客户端连接,适用于用来实验,不适用于生产环境。
本地元存储
本地安装 mysql 替代 derby 存储元数据,这种安装方式和嵌入式的区别在于,不再使用内嵌的 Derby 作为元数据的存储介质,而是使用其他数据库比如 MySQL 来存储元数据。hive 服务和 metastore 服务运行在同一个进程中,mysql 是单独的进程,可以同一台机器,也可以在远程机器上。
远程元存储(HiveServer2)
Hive 服务和 metastore 在不同的进程内,可能是不同的机器,该模式需要将 hive.metastore.uris 设置为 metastore 服务器 URL,如果有多个 metastore 服务器,将 URL 之间用逗号分隔,metastore 服务器 URL 的格式为 thrift://127.0.0.1:9083。
3、什么是 Managed Table 跟 External Table?
- 1、Hive 有两种类型的表 Managed Table(内部表) 跟 External Table(外部表)。
- 2、Managed Table:也被称作 Internal table,这种表是 hive 的默认类型。如果你在创建表的时候没有指明 Managed 或者 External,那么默认就会给你创建 Managed Table。
a、Managed Table 的数据,会存放在 HDFS 中的特定的位置中,通常是/user/username/hive/warehouse
。
b、我们可以使用describe formatted table_name;
命令来查看表的信息。
c、当你删除drop table table_name;
删除表时,数据文件也会一并删除。 - 3、External Table:特别适用于想要在 Hive 之外使用表的数据的情况.当你删除 External Table 时,只是删除了表的元数据,它的数据并没有被删除。
4、什么时候使用 Managed Table 跟 External Table?
- Managed Table
- 适用于临时创建的中间表
- External Table
- 适用于数据多部门共享
5、hive 有哪些复合数据类型?
1、MAP
a.Map 复合数据类型提供了 key-value 对存储,你可以通过 key 获取 value。b.zhangsan Math:90,Chinese:92,English:78i.create table score_map(name string, score map<string, int>) map keys terminated by ':';ii.select name, score['English'], size(score) from score_map;
2、STRUCT
a.Struct 是不同数据类型元素的集合。b.zhangsan Math,90i.create table course_struct(name string, course struct<course: string, score: int>) collection items terminated by ',';ii.select name, course.score, course.course from course_struct;
3、ARRAY
a.Array 是同类型元素的集合.b.zhangsan beijing,shanghai,hangzhoui.create table person_array(name string, work_locations array<string>) collection items terminated by ',';ii.select name
这篇关于大数据技术之_32_大数据面试题_01_Hive 基本面试 + Hive 数据分析面试 + Flume + Kafka 面试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!