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负责确保从一个网络节点向另一个网络节点发送文件能作为一个完整的文件到达目的地 ...
随机推荐
- Pwn2own 2023 Tesla 利用链摘要
Pwn2own 2023 Tesla 利用链摘要 https://www.youtube.com/watch?v=6KddjKKKEL4 攻击链: 利用蓝牙协议栈自己实现的 BIP 子协议中的堆溢出, ...
- 【Amadeus原创】k8s添加新master或node
Master 1,在master上生成新的token [root@it-1c2d ]# kubeadm token create --print-join-command kubeadm join k ...
- 【Amadeus原创】word图片隐藏在文字里了的终极解决办法
终极解决方案: 点击该图片,然后,选择正文,即可.
- 数据湖加速器GooseFS,加速湖上数据分析性能
数据湖加速器 GooseFS 是由腾讯云推出的高性能.高可用.弹性的分布式缓存方案.依靠对象存储(Cloud Object Storage,COS)作为数据湖存储底座的成本优势,为数据湖生态中的计算应 ...
- 断言、drf之请求与响应
目录 一.断言 二.drf之请求 2.1 Request能够解析的前端传入的编码格式 2.2 Request类有哪些属性和方法(学过) 常用参数 Response类的实例化参数 三.drf之响应 3. ...
- Qt编写地图综合应用30-世界地图
一.前言 世界地图也属于区域地图的一种,最开始做项目的时候只有国内的地图需求,后面有个客户他们的产品是面向国际市场,所以在大屏展示的时候,必须展示一张世界地图,所有箭头动态流向中国,当然这些都要离线使 ...
- Qt开源作品37-网络中转服务器
一.前言 用Qt做开发10年了,其中做过好多项目,基于现在web和移动互联网发展如此迅猛,大量的应用场景需要一个网络中转服务器,可以实现手机app或者其他客户端远程回控设备,现在物联网发展非常迅猛,这 ...
- 【Windows 开发环境配置——C++ 篇】VSCode+MSVC/MinGW/Clangd/LLDB+Xmake
环境安装 Microsoft Visual Studio 这里以Visual Studio 2022为例,在Visual Studio 2022 版本发行说明 | Microsoft Learn选择所 ...
- Pytorch Utils 总结
Utils 从torch.nn.utils模块 clip_grad_norm_ 裁剪参数迭代的梯度范数. clip_grad_value_ 在指定值处剪辑可迭代参数的梯度. parameters_to ...
- 封装的DynamicCRM平台中最实用的JS工具类
包含了一个遮罩层的使用对象和一个通用的CRM平台JS操作对象. 使用示例: 常用的比如去除页面查找字段guid的'{}':commonUtil.delBrackets(commonUtil.getLo ...