当前位置: 首页 > news >正文

hive 面试题

  1. Hive基础概念
    1.1 Hive是什么?

基于Hadoop的数据仓库工具,支持类SQL(HiveQL)查询,底层转换为MapReduce/Tez/Spark任务。

核心功能:数据ETL、查询、分析;定位:OLAP(分析型),非OLTP(事务型)。

1.2 Hive与传统数据库的区别

特性 Hive 传统数据库 (如MySQL)
数据规模 PB级 GB/TB级
延迟 高(分钟级) 低(毫秒级)
事务支持 有限(Hive 0.14+支持ACID) 完善
存储 HDFS 本地磁盘
2. Hive架构与核心组件
2.1 元数据存储(Metastore)

存储表结构、分区、数据位置等信息,生产环境常用MySQL。
模式:内嵌模式、本地模式、远程模式(推荐)。

2.2 HQL执行流程

HQL → 解析器 → 编译器 → 优化器 → 执行引擎 → 结果。
3. Hive数据模型
3.1 内部表 vs 外部表

内部表:数据由Hive管理,删除表时数据连带删除。

外部表:仅删除元数据,数据保留在HDFS。

3.2 分区与分桶

– 分区表示例
CREATE TABLE logs (msg STRING) PARTITIONED BY (dt STRING);

– 分桶表示例
CREATE TABLE user_bucketed (id INT) CLUSTERED BY (id) INTO 4 BUCKETS;

| 维度 | 分区 | 分桶

|适用场景|按日期/地区过滤|JOIN优化、数据倾斜处理

  1. Hive优化技巧
    4.1 存储优化

使用列式存储(ORC/Parquet)和压缩(Snappy)。

合并小文件:
SET hive.merge.mapfiles=true;
4.2 数据倾斜处理

对倾斜Key添加随机前缀:

SELECT user_id, COUNT(*) FROM logs
GROUP BY user_id + CAST(RAND() * 10 AS INT);
5. Hive高级特性
5.1 Hive事务
仅支持分桶表+ORC格式:
CREATE TABLE txn_table (…) STORED AS ORC TBLPROPERTIES (‘transactional’=‘true’);
5.2 Hive on Spark

优势:内存计算、DAG优化,比MapReduce快10倍以上。
6. 常见面试问题
6.1 如何调优Hive查询?

分区/分桶、ORC格式、MapJoin、压缩数据。

6.2 Hive与HBase整合?

通过Hive-HBase Handler映射表,支持双向查询。

  1. 场景应用题
    问题:如何设计每日用户日志分析?
    方案:

按日期分区:PARTITIONED BY (dt STRING)

使用ORC+Snappy压缩。

对高频用户分桶,处理数据倾斜。

http://www.lryc.cn/news/545752.html

相关文章:

  • VScode在windows10上使用clang-format
  • AWS API Gateway灰度验证实现
  • 【每日八股】MySQL篇(三):索引(上)
  • 在Pycharm中将ui文件修改为py文件
  • 看视频学习方法总结
  • Matlab 大量接单
  • 《深度剖析:生成对抗网络中生成器与判别器的高效协作之道》
  • Android6到Android15版本新增的功能和api
  • 【现代Web布局与动画技术:卡片组件实战分享】
  • 计算机网络之传输层(传输层提供的服务)
  • FPGA开发,使用Deepseek V3还是R1(1):应用场景
  • 哈希表和STL —— unorderde_set/unordered_map【复习笔记】
  • 计算机毕业设计SpringBoot+Vue.js体育馆使用预约平台(源码+文档+PPT+讲解)
  • 42 session反序列化漏洞
  • 【Jenkins】个人向-Jenkinsfile如何写
  • staruml绘制时序图和用例图
  • 问题修复-后端返给前端的时间展示错误
  • Rust配置开发环境+服务器实战
  • 使用DeepSeek+KIMI生成高质量PPT
  • 虚拟机如何设置ip
  • 蓝桥杯 路径之谜
  • Git操作指南:分支合并、回退及其他重要操作
  • Element Plus中el-tree点击的节点字体变色加粗
  • jenkens使用笔记
  • 腾讯混元文生图大模型(Hunyuan-DiT)与Stable Diffusion(SD)对比分析
  • 深入浅出理解编译器:前端视角
  • Minio搭建并在SpringBoot中使用完成用户头像的上传
  • Ubuntu系统上部署Node.js项目的完整流程
  • DeepSeek效应初现:Grok-3补刀ChatGPT,OpenAI已在ICU?
  • 【知识】torchrun 与 torch.multiprocessing.spawn 的对比