大数据技术之_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

相关文章

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Java Kafka消费者实现过程

《JavaKafka消费者实现过程》Kafka消费者通过KafkaConsumer类实现,核心机制包括偏移量管理、消费者组协调、批量拉取消息及多线程处理,手动提交offset确保数据可靠性,自动提交... 目录基础KafkaConsumer类分析关键代码与核心算法2.1 订阅与分区分配2.2 拉取消息2.3

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

Python利用PySpark和Kafka实现流处理引擎构建指南

《Python利用PySpark和Kafka实现流处理引擎构建指南》本文将深入解剖基于Python的实时处理黄金组合:Kafka(分布式消息队列)与PySpark(分布式计算引擎)的化学反应,并构建一... 目录引言:数据洪流时代的生存法则第一章 Kafka:数据世界的中央神经系统消息引擎核心设计哲学高吞吐