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

Hive概述

Hive简介

Hive是一个基于Hadoop的开源数据仓库工具,用于存储和处理海量结构化数据.
它是Facebook在2008年8月开源的一个数据仓库框架,提供了类似于SQL语法的HQL(HiveSQL)语句作为数据访问接口.
Hive可以做复查统计分析之类的工作; 利用hdfs的存储空间,进行结构化数据的存储; 利用Mapreduce进行数据的计算.  

Hive的优缺点

优点:

. 使用JDBC接口/ODBC接口,开发人员更易开发应用.  
. 统一的元数据管理(Derby、MySql等),并可与Pig、Spark等共享.  
. 以 MR 作为计算引擎、HDFS 作为存储系统,为超大数据集设计的计算/扩展能力.  
. 使用类 SQL 查询语法,最大限度的实现了和SQL标准的兼容,大大降低了传统数据分析人员处理大数据的难度.  

缺点:

. Hive自动生成MapReduce作业,HQL 调优困难.  
. Hive生成MapReduce作业,高延迟,不适合实时查询.  
. HQL 表达能力有限,比如不支持UPDATE、非等值连接、DELETE、INSERT单条等.  
. 粒度较粗,可控性差,是因为数据是读的时候进行类型的转换,mysql关系型数据库是在写入的时候就检查了数据的类型。

Hive与RDBMS的对比

• Hive使用mapreduce做运算,与传统数据库相比运算数据规模要大得多;  
• Hive很容易扩展自己的存储能力和计算能力,这个是继承hadoop的,而关系数据库在这个方面要比Hive差很多;  
• Hive和关系数据库存储文件的系统不同,hive使用的是hadoop的HDFS,关系数据库则是服务器本地的文件系统;  
• 关系数据库都是为实时查询的业务进行设计的,而hive则是为海量数据做数据挖掘设计的,实时性很差;实时性差导致hive的应用场景和关系数据库有很大的区别.
HiveRDBMS
查询语言HQLSQL
数据存储HDFSRaw Device or Local FS
执行引擎MapReduce数据库引擎
数据存储校验存储不校验存储校验
可扩展性有限
执行延迟
处理数据规模

Hive的组成

两大类组件:服务端组件和客户端组件

服务端组件:

Driver组件:

该组件包括Complier(编译器)、Optimizer(优化器)和Executor(执行器),
它的作用是将HiveQL(类SQL)语句进行解析、编译优化,生成执行计划,然后调用底层的MapReduce计算框架.

Metastore组件:

元数据服务组件,这个组件存取Hive的元数据;
作用是: 客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据.  
Hive的元数据存储在关系数据库里,Hive支持的关系数据库有Derby和Mysql.
Hive元数据: Hive表所对应的字段、属性还有表所对应存储的HDFS目录.

Thrift服务:

Thrift是Facebook开发的一个软件框架,它用来进行可扩展且跨语言的服务的开发,Hive集成了该服务,能让不同的编程语言(Java,Scala)调用Hive的接口.

客户端组件:

CLI:

Command Line Interface,命令行接口.

JDBC/ODBC:

Hive架构的JDBC和ODBC接口是建立在Thrift客户端之上.

WEBGUI:

Hive客户端提供了一种通过网页的方式访问Hive所提供的服务.这个接口对应Hive的HWI组件(Hive Web Interface),使用前要启动HWI服务.

在这里插入图片描述

Hive查询执行过程

在这里插入图片描述

1)Execute Query: Hive界面如命令行或Web UI将查询发送到Driver(任何数据库驱动程序如JDBC、ODBC,等等)来执行.
2)Get Plan:       Driver根据查询编译器解析query语句,验证query语句的语法,查询计划或者查询条件.
3)Get Metadata:  编译器将元数据请求发送给Metastore(数据库).
4)Send Metadata: Metastore将元数据作为响应发送给编译器.
5)Send Plan:     编译器检查要求和重新发送Driver的计划;到这里,查询的解析和编译完成.
6)Execute Plan:   Driver将执行计划发送到执行引擎.
6.1)Execute Job:  任务执行引擎发送一个任务到资源管理节点(ResourceManager),资源管理器分配该任务到任务节点,由任务节点上开始执行mapreduce任务.
6.2)Metadata Ops:在执行引擎发送任务的同时,对Hive的元数据进行相应操作.
7)Fetch Result:  执行引擎接收数据节点(DataNode)的结果.
8)Send Results:   执行引擎发送这些合成值到Driver.
9)Send Results:  Driver将结果发送到Hive接口.  
http://www.lryc.cn/news/342138.html

相关文章:

  • buuctf-misc-33.[BJDCTF2020]藏藏藏1
  • golang 基础知识细节回顾
  • 递归陷阱七例
  • 【3D基础】坐标转换——地理坐标投影到平面
  • 颈椎锻炼方式
  • 测试环境搭建:JDK+Tomcat+Mysql+Redis
  • (delphi11最新学习资料) Object Pascal 学习笔记---第11章第1节(混合引用中的错误)
  • 代码随想录算法训练营第三天 | 链表理论基础,203.移除链表元素,707.设计链表,206.反转链表
  • 如何利用仪表构造InfiniBand流量在数据中心测试中的应用
  • Kubernetes 文档 / 概念 / Kubernetes 架构 / 节点
  • ICode国际青少年编程竞赛- Python-1级训练场-for循环练习
  • Flutter分模块开发、模块可单独启动、包含Provider
  • Element-UI快速入门:构建优雅的Vue.js应用界面
  • Flutter 中的 @immutable:深入解析与最佳实践
  • Pandas数据可视化 - Matplotlib、Seaborn、Pandas Plot、Plotly
  • 人工智能的发展将如何重塑网络安全
  • Prometheus+Grafana多方位监控
  • 使用Docker安装Redis
  • React 之 Effect与事件(event)(八)
  • 网卡的了解
  • SSM框架目录
  • MATLAB实现杜拉德公式和凯夫公式的计算固液混合料浆临界流速
  • Oceanbase all-in-one单机版部署,通过MySQL客户端连接OB租户,DBEAVER 客户端连接MySQL租户。
  • 【DevOps】玩转 Google Cloud:项目切换与 K8s 集群访问
  • 大模型_DISC-MedLLM基于Baichuan-13B-Base医疗健康对话
  • 开源模型 Prometheus 2 能够评估其他语言模型,其效果几乎与 GPT-4 相当
  • 【Java】HOT100 贪心算法
  • 绝地求生:PUBG杜卡迪联名进入倒计时3天!
  • 【论文阅读】Learning Texture Transformer Network for Image Super-Resolution
  • 读字库写FM24C04