Hive 知识点八股文记录 ——(一)特性

Hive通俗的特性

  • 结构化数据文件变为数据库表
  • sql查询功能
  • sql语句转化为MR运行
  • 建立在hadoop的数据仓库基础架构
  • 使用hadoop的HDFS存储文件
  • 实时性较差(应用于海量数据)
  • 存储、计算能力容易拓展(源于Hadoop)

支持这些特性的架构

CLI(command line interface)、JDBC/ODBC、Thrift Server、WEB GUI、metastore和Driver(Complier、Optimizer和Executor)

服务端

  1. Driver:包括了Complier、Optimizer和Executor。将Hive sql解析,编译,优化,生成执行计划
  2. Metastore :存储hive元数据(描述数据的数据,比如一行数据里面,单个数据的名字叫啥,类型是啥,注释是啥,以及表本身的框架) 解耦hive服务和metastore服务
  3. Thrift:可扩展且跨语言的服务的开发,hive集成服务支持不同编程语言调用hive的接口、

客户端

  1. CLI: 命令行接口
  2. Thrift客户端: hive架构的接口基于thrift客户端(如 JDBC, 面向java的连接; ODBC 开放数据连接)
  3. WEBGUI:网页访问Hive服务接口

Hive执行MR的过程

  1. User Interface用executeQuery接口,hql发送给Driver
  2. driver 生成 session handle, 并发送给Compiler
  3. Compilermetastore获取元数据
  4. 元数据检查类型后,对为此调整分区,生成计划
  5. Compiler 生成DAG ,每个stage都可能涉及M/R job, 元数据操作, HDFS文件操作
  6. 每个M/R中,查询结果以临时文件方式放在HDFS中,临时文件由Execution Engine从HDFS读取,作为Driver返回内容

特点

  • Hive加载数据的时候不对数据检查 (关系型是检查的,若加载数据不符合模式会拒绝执行,称之为写时模式 ),也不更改加载的数据文件,查询的时候检查数据格式 (读时模式)
    • 写时模式加载过程中索引,数据会压缩,加载数据较慢。数据加载好后查询较快
    • 读时模式适用于数据非结构化,存储模式未知的情况
  • hive不支持对特定行的操作,只支持覆盖 原数据和追加数据
  • hive不支持事务,索引
  • hive的更新操作为:原表数据转化后存在新表
  • hive支持和hbase集成,实现快速查询,但需要提供sql语法解析外壳
  • hive可认为是MR的包装

Spark通俗的特性

兼容hive

组件

  • SQLContext:封装spark关系型功能
  • DataFrame:分布式,命名列阻止的数据集合,可转化为RDD,支持已有的RDD、结构化数据文件、JSON数据集、Hive表、外部数据库创建DF

sql运行架构

  1. sql语句进行解析,判断出表达式,projection,datasource等(projection可以理解为select的列的集合)
  2. sql语句和数据字典(列,table, view)绑定。
  3. 选出最优的执行计划
  4. 按Operation datasource result次序执行(可以不读取物理表读取缓冲池返回结果)

Hive on MR 与 SparkSql区别

两者基本相同,但sql解析器不一样(spark做了较多优化)

Hive spark
场景 离线,非实时 实时要求高,速度快的场景
速度 快,比传统MR块10-100倍

表的元数据存储在什么地方

  1. 内存数据库derby,快,轻量,不稳定
  2. MySql数据库 持久化好

建表方式

  1. 直接建表
  2. 查询建表(通过select得到的结果生成新的表)
  3. like建表(无数据,结构一致)

表的分类

内部表,外部表

默认创建内部表,创建外部表,需要加上external关键字修饰,还可通过location指定Hive仓库的路径

区别

内部表 外部表
drop 删除元数据和文件 只删除元数据
load 数据移动到指定路径 不移动到数据仓库目录下

优先使用外部表

  1. 不删除数据,方便数据恢复
  2. 不加载数据到hive,减少数据传输
  3. 不对HDFS数据修改

数据处理都用hql完成的话,选择内部表

相关推荐
RestCloud5 小时前
ETL、ELT、CDC区别详解,2026数据集成模式选型指南与落地实战
数据仓库·etl·cdc·数据同步·数据集成平台·实时数据同步·elt
江晓鱼未暖7 小时前
十七、Redis 核心原理与架构详解
大数据·数据库·数据仓库·redis·缓存·架构
牛奶咖啡133 天前
大数据Hadoop运维应用实践——HIVE与Hadoop实现整合_Hive的配置安装与使用
大数据·hive·hive的配置与安装·metastore服务的配置·hiveserver2服务配置·hive的常用sql操作·beeline的使用
Zhu7584 天前
在k8s集群环境部署高可用的Apache Hadoop3.1.1定制版集群
hadoop·kubernetes
Y3815326625 天前
3 种 SERP 数据 ETL 方案对比:实时 / 定时 / 流式
数据仓库·etl
还有你Y5 天前
软件工程架构
hadoop·架构·软件工程
向夏威夷 梦断明暄5 天前
基于Tez引擎的 Hive SQL 性能优化
hive·sql·性能优化
这个DBA有点耶6 天前
交易型数据库是什么?OLTP核心能力与2026选型指南
数据库·数据仓库·sql·database·数据库架构·olap·dba
RestCloud7 天前
Informatica迁移国产ETL完整实施指南:ETLCloud自动化平滑替换方案
数据仓库·etl·etlcloud·数据传输·数据集成工具·informatica·国产化替代