Hive - [01] 概述
一、Hive是什么
是Facebook开源,用于解决海量结构化日志的数据统计工具。
是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。
Hive处理的数据存储在HDFS上,数据分析底层实现是MR,执行程序运行在Yarn上。
二、Hive的优缺点
优点(Advantages):
- 操作接口采用类SQL 语法,提供快速开发的能力(简单、容易上手)。
- 避免了去写 MapReduce,减少开发人员的学习成本。
- Hive 的执行延迟比较高,因此 Hive 常用于数据分析(对实时性要求不高的场合)。
- Hive 优势在于处理大数据,对于处理小数据没有优势,因此 Hive 的执行延迟比较高
- Hive 支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
缺点(Disadvantages):
- HQL表达能力有限,迭代式算法无法表达,
- 数据挖掘方面不擅长:由于 MapReduce 数据处理流程的限制,效率更高的算法却无法实现。
- Hive 的效率比较低,Hive 自动生成的 MR 作业,通常情况下不够智能化
- Hive 调优比较困难,粒度较粗。
三、Hive 的架构

HiveQL:Hive的SQL方言,类似于SQL查询语言。HiveQL允许用户使用类似于SQL的语言来查询和分析数据。
Hadoop:Hive运行在Hadoop上,是一个基于MapReduce的数据处理框架。Hadoop提供了分布式存储和计算能力,使得Hive可以高效地处理大规模数据。
执行引擎:Hive的执行引擎将HiveQL语句转换为MapReduce作业或Tez作业,并提交给Hadoop集群进行执行。
Metastore:Hive元数据存储库,用于管理表、分区和其他元数据信息。Hive Metastore是一个RESTful API,可以通过HTTP协议访问。
Driver:Hive提供了许多不同的驱动程序,用于与不同的数据源进行交互。例如,Hive支持MySQL、Oracle、PostgreSQL等常见的关系型数据库。
Web UI:Hive提供了一个Web界面,称为Hive Web UI(https://hive.apache.org/hive-web-site/)。这个UI可以方便地执行查询、查看和管理Hive集群中的数据。
四、Hive的相关概念
记录:数据(存储在HDFS上,表里面的记录会存储很多,数量无上限)
数据库、表:为了描述记录(元数据,元数据存储在关系型数据库,数据库(MySQL)中并不存储 Hive 的记录。)
Hive的元数据包括:
- 表的名字
- 表的列和分区及其属性
- 表的属性(是否为外部表等)
- 表的数据所在的目录等
五、Hive的三种模式
Tips:Hive的元数据可由access、virtual ofx、sql server、mysql、sqlite、postgresql、oracle管理。
5.1、本地模式
此模式连接到一个In-Memory的数据库Derby,一般用于单元测试(UnitTest)
5.2、单用户模式
通过网络连接到一个数据库中,是最常使用到的模式
5.3、多用户模式
远程服务器模式,用于非java客户端访问元数据(metastore),在服务器端启动metaStoreServer,客户端利用thrift协议通过metaStoreServer访问元数据库
六、Hive 中的数据类型
| 类 型 | Hive | MySQL中类似的 |
| 整 数 | numberic、tinyint | tinyint、int、bigint、mediumint、numeric |
| 浮 点 | decimal | double、decimal |
| 字符串 | string | varchar、text、char |
| 布 尔 | 无 | 无 |
| 时 间 | date/time | date、time、datetime、timestamp |
| JSON | json | |
| Geom | 几何图形(周边搜索)(地理系统,地图) | |
| 二进制 | boolean,binary | 图片 |
| 复杂类型 | Arrays,maps,structs,union | json |
— 要养成终生学习的习惯 —
Hive - [01] 概述的更多相关文章
- Hive 01 概述、安装配置
概述 数据仓库:是一个面向主题的.集成的.不可更新的.随时间不变化的数据集合,它用于支持企业或组织的决策分析处理. 数据仓库的结构和建立过程: 数据源 数据存储及管理 ETL Extract 提取 T ...
- kafka详解(01) - 概述
kafka详解(01) - 概述 定义:Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域. 消息队列 MQ传统应用场景之异步处理 使用消 ...
- Zookeeper详解(01) -概述
Zookeeper详解(01) -概述 概念 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目. Zookeeper从设计模式角度来理解,是一个基于观察者模式设计的分 ...
- hive的概述和数据类型
一.Hive概述 1.Hive简介 Hive数据仓库软件有助于使用SQL读取.编写和管理驻留在分布式存储中的大型数据集.提供了命令行工具和JDBC驱动程序以将用户连接到Hive. Hive可以将SQL ...
- 01 - 概述 VTK 6.0 迁移
摘要 对vtk版本4和5的管道机制重新架架构的主要目的是:迁移数据对象和算法对象中的管道执行逻辑到一个新集合的类中,我们称这个集合类叫executives.分离数据和执行模型的代码后,可以双双简化修改 ...
- Redis数据库 01概述| 五大数据类型
1.NoSQL数据库简介 解决应用服务器的CPU和内存压力:解决数据库服务的IO压力: ----->>> ① session存在缓存数据库(完全在内存里),速度快且数据结构简单: 打 ...
- [Hive]HiveServer2概述
1. HiveServer1 HiveServer是一种可选服务,允许远程客户端可以使用各种编程语言向Hive提交请求并检索结果.HiveServer是建立在Apache ThriftTM(http: ...
- 【OracleDB】 01 概述和基本操作
实例概念: Oracle有一个特殊的概念 Oracle数据库 = 数据库 + Oracle文件系统 + Oracle实例 实例处理Oracle的请求,调用文件系统 然后返回结果响应给客户端 单实例和多 ...
- 【大数据面试】Flink 01 概述:包含内容、层次架构、运行组件、部署模式、任务提交流程、任务调度概念、编程模型组成
一.概述 1.介绍 对无界和有界数据流进行有状态计算的分布式引擎和框架,并可以使用高层API编写分布式任务,主要包括: DataSet API(批处理):静态数据抽象为分布式数据集,方便使用操作符进行 ...
- Headfirst JSP 01 (概述)
HTTP 协议 http 是tcp/ip上层协议, 如果你对这些网络协议还不是太熟悉, 下面提供一个非常简单的解释, tcp负责确保从一个网络节点向另一个网络节点发送文件能作为一个完整的文件到达目的地 ...
随机推荐
- 金Gien乐道 | 8月热点回顾
中电金信2023年中工作会议:加快推进以"源启"为基石的业务模式转型 8月12日,中电金信2023年中工作会议在上海召开.会议贯彻落实中国电子2023年中工作会议精神,总结上半 ...
- django静态文件、form表单和request对象
目录 一.静态文件 1.静态文件概念 2.资源访问 3.静态文件资源访问 二.静态文件相关配置 1.接口前缀 2.接口前缀动态匹配 三.form表单 action属性 method属性 四.reque ...
- Eureka 缓存机制详细配置
https://blog.csdn.net/qwe86314/article/details/94963865 上节为大家介绍了 Eureka 的工作原理,其中提到了 Eureka Server 内部 ...
- Qt数据库应用18-横向纵向排版
一.前言 近期用户提了个需求,需要打印一个文档,要求其中部分页横向排版部分页面纵向排版,这个在之前的通用打印导出pdf类中是不具备的,通用的打印导出pdf只能统一设置一个排版方式,要么横向要么纵向,而 ...
- vue辅助函数mapState和mapGetter前面三个点到底是什么意思:对象展开运算符
import store from "./store" computed: { useName: function() { return store.state.userName ...
- 【Java 温故而知新系列】基础知识-01 概述
1.什么是Java Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了 C++里难以理解的多继承. 指针等概念,因此Java语言具有功能强大和简单易 用两个特征.Java语言作为 ...
- 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-9- 浏览器的相关操作 (详细教程)
1.简介 在自动化测试领域,元素定位是非常重要的一环.正确定位页面元素是测试用例能否成功执行的关键因素之一.playwright是一种自动化测试工具,它提供了丰富的元素定位方法,可以满足不同场景下的定 ...
- [megatron代码阅读] 1. 初始化和组网
以pretrain_gpt.py为例, 看megatron的整体逻辑. 本章主要包括megatron初始化相关逻辑, 核心函数为initialize_megatron, setup_model_and ...
- 面试题: == 和 equals() 区别【包装类重写了object类中的equals方法】
/* * * 面试题: == 和 equals() 区别 * * 一.回顾 == 的使用: * == :运算符 * 1. 可以使用在基本数据类型变量和引用数据类型变量中 * 2. 如果比较的是基本数据 ...
- Fanatastic pg walkthrough 10 Easy
nmap 发现9090 22 和3000端口 发现漏洞 但是不知道还能读到哪些敏感文件 hacktricks 看看 https://book.hacktricks.xyz/network-servic ...