大数据技术之_32_大数据面试题_01_Hive 基本面试 + Hive 数据分析面试 + Flume + Kafka 面试

2024-08-23 23:18

本文主要是介绍大数据技术之_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 面试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100777

相关文章

Redis 基本数据类型和使用详解

《Redis基本数据类型和使用详解》String是Redis最基本的数据类型,一个键对应一个值,它的功能十分强大,可以存储字符串、整数、浮点数等多种数据格式,本文给大家介绍Redis基本数据类型和... 目录一、Redis 入门介绍二、Redis 的五大基本数据类型2.1 String 类型2.2 Hash

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Java Instrumentation从概念到基本用法详解

《JavaInstrumentation从概念到基本用法详解》JavaInstrumentation是java.lang.instrument包提供的API,允许开发者在类被JVM加载时对其进行修改... 目录一、什么是 Java Instrumentation主要用途二、核心概念1. Java Agent

Java中的Schema校验技术与实践示例详解

《Java中的Schema校验技术与实践示例详解》本主题详细介绍了在Java环境下进行XMLSchema和JSONSchema校验的方法,包括使用JAXP、JAXB以及专门的JSON校验库等技术,本文... 目录1. XML和jsON的Schema校验概念1.1 XML和JSON校验的必要性1.2 Sche

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

Kotlin 协程之Channel的概念和基本使用详解

《Kotlin协程之Channel的概念和基本使用详解》文章介绍协程在复杂场景中使用Channel进行数据传递与控制,涵盖创建参数、缓冲策略、操作方式及异常处理,适用于持续数据流、多协程协作等,需注... 目录前言launch / async 适合的场景Channel 的概念和基本使用概念Channel 的

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返