Hive基本原理

Hive基本原理详解 目录一、Hive概述(1)什么是Hive?(2)Hive的优点及应用场景二、Hive 和 RDBMS(关系数据库管理系统)的对比三、Hive架构(1)Hive的基本组成(2)各组件的基本功能四、Hive的工作原理 一、Hive概述 (1)什么是Hive? 由Facebook开源用于解决海量结构化日志的数据统计 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张表,并提供类SQL查询功能 构建在Hadoop之上的数据仓库:使用HQL作为查询接口,使用HDFS存储,使用MapRed 阅读详情

1. Hive简介

        hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
        Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。

2. hive与关系数据库的区别

  • 存储文件的系统不同,hive使用的是hadoop的HDFS(hadoop的分布式文件系统),关系数据库则是服务器本地的文件系统;
  • hive使用的计算模型是mapreduce,而关系数据库则是自己设计的计算模型
  • 关系数据库都是为实时查询的业务进行设计的,而hive则是为海量数据做数据挖掘设计的,实时性很差
  • 对于更新操作,hive是通过查询将原表的数据进行转化最后存储在新表里,
  • Hive很容易扩展自己的存储能力和计算能力
  • hive不支持对某个具体行的操作,hive对数据的操作只支持覆盖原数据和追加数据。Hive也不支持事务和索引

3. hive的优缺点

优点

  • 可扩展性
  • 延展性,hive支持自定义函数,用户可以根据自己需求实现自己的函数
  • 良好的容错性,可以保障即使有节点出现问题,sql语句仍然可以完成执行
    缺点
  • Hive因为调用了MapReduce,效率降低了
  • Hive不支持事务

4. Hive架构

Hive架构
用户接口主要有三个:CLI,Client 和 WUI。其中最常用的是CLI,Cli启动的时候,会同时启动一个Hive副本。Client是Hive的客户端,用户连接至Hive Server。在启动 Client模式的时候,需要指出Hive Server所在节点,并且在该节点启动Hive Server。 WUI是通过浏览器访问Hive

客户端组件
  • CLI:command line interface,命令行接口
  • Client :Hive的客户端
  • Thrift客户端:hive架构的许多客户端接口是建立在thrift客户端之上,包括JDBC和ODBC接口
  • WEBGUI:hive客户端提供了一种通过网页的方式访问hive所提供的服务
服务端组件
  • Driver组件:该组件包括Complier(编译器)、Optimizer(优化器)和Executor,(执行器)作用是完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。
  • Metastore组件:元数据服务组件,这个组件存储hive的元数据,hive的元数据存储在关系数据库里,hive支持的关系数据库有derby、mysql Hive和MySQL之间通过MetaStore服务交互
    执行流程:HiveQL 通过命令行或者客户端提交,经过 Compiler 编译器,运用 MetaStore 中的元数 据进行类型检测和语法分析,生成一个逻辑方案(Logical Plan),然后通过的优化处理,产生 一个 MapReduce 任务。
  • Thrift服务:thrift是facebook开发的一个软件框架,它用来进行可扩展且跨语言的服务的开发,hive集成了该服务,能让不同的编程语言调用hive的接口。
hive的数据组织
  1. hive的存储结构包括数据库、表、视图、分区和表数据等,数据库,表,分区等等都对应HDFS上的一个目录,表数据对应hdfs对应目录下的文件。
  2. Hive中所有的数据都存储在HDFS中,没有专门的数据存储格式,因为Hive是读模式,可支持TextFile,SquenceFile,RCFile或者自定义格式等
  3. 只需要在创建表的的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据
    Hive 的默认列分隔符:控制符 Ctrl + A,\x01 Hive 的  
    Hive 的默认行分隔符:换行符 \n
  4. Hive中包含以下数据模型
  • database:在HDFS中表现为${hive.metastore.warehouse.dir}目录下一个文件夹
  • table:在HDFS中表现所属database目录下一个文件夹
  • external table:与 table 类似,不过其数据存放位置可以指定任意 HDFS 目录路径
  • partition:在 HDFS 中表现为 table 目录下的子目录
  • bucket:在 HDFS 中表现为同一个表目录或者分区目录下根据某个字段的值进行 hash 散 列之后的多个文件
  • view:与传统数据库类似,只读,基于基本表创建
hive的常见表

Hive 中的表分为内部表、外部表、分区表和 Bucket 表

hive的内部表和外部表的区别

hive默认创建的是内部表

  • 删除内部表,删除表元数据和数据
  • 删除外部表,删除元数据,不删除数据
  • 内部表数据由Hive自身管理,外部表数据由HDFS管理;
  • 内部表数据存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),外部表数据的存储位置由自己制定;
hive内部表和外部表的使用选择

如果数据的所有处理都在 Hive 中进行,那么倾向于 选择内部表,但是如果 Hive 和其他工具要针对相同的数据集进行处理,外部表更合适。  使用外部表访问存储在 HDFS 上的初始数据,然后通过 Hive 转换数据并存到内部表中

hadoop入门学习教程 之10.Hive工作原理和基本使用 hadoop入门学习教程 之10.Hive工作原理和基本使用,出自《Cloudera Hadoop 4 实战课程》,hadoop入门学习教程用到技术:CDH4,Cloudera Manager,Hive,HBase,Sqoop, Hadoop培训视频教程涉及项目:电商业日志流量分析项目。 立即下载

相关推荐

hive实现原理

hive 分布式实现原理。hive是大数据平台上构建数据仓储必须要用的。

Hive概述及其基本原理

Hive是一个基于Hadoop的数据仓库工具, 可以将结构化的数据文件映射为一张表, 并提供类似于SQL的查询功能。 Hive本身并不存储和处理数据,更像是一个接口,存储由HDFS实现,处理数据由MapReduce实现。简单来说,Hive可以将sql语句转换为MapReduce任务, 在HDFS上进行数据查询。 Hive的特点 Hive采用类SQL开发,简单容易上手,避免了编写MapReduce的工作 Hive执行延迟比较高,无法胜任实时的工作(OLTP),大多用于数据分析工作(OLAP)。 Hive擅长

weixin_41812379的博客 4327

ElementUI中的el-table解决宽度问题 - 根据内容自动撑开

在使用element-ui中,会发现表格组件el-table在未指定宽度情况下,会自动计算并给表格宽度赋值。但实际开发中,有时需要根据内容实际长度自动撑开显示,由内容的多少而决定表格的宽度,而不是默认宽度为100%。在默认情况下表格宽度为100%显示,并且列项未指定宽度情况下,剩余部分会平均分配宽度,本案例实际需求是由内容自动撑开显示。componentUpdated

觉醒法师的专栏 1万+

大数据计算域——Spark计算引擎

Apache Hive 是一个基于 Hadoop 分布式文件系统 (HDFS) 的数据仓库软件项目,专为存储和处理大规模数据集而设计。它提供类似 SQL 的查询语言 HiveQL,使用户能够轻松编写复杂的查询和分析任务,而无需深入了解 Hadoop 的底层实现。

庄小焱 1929

SAM3模型国内快速上手:Modelscope权重下载+环境配置一条龙指南

本文详细介绍了SAM3模型在国内的快速部署方案,包括通过Modelscope平台下载权重文件、优化CUDA 11.8环境配置以及实战避坑技巧。针对国内开发者常见的网络问题和环境兼容性问题,提供了从权重下载到模型加载的全流程指南,帮助用户高效完成部署并快速上手SAM3模型。

weixin_28465009的博客 1137

深度可分离卷积(DepthwiseSeparableConvolution):Depthwise卷积与Pointwise卷积

深度可分离卷积不用多说,在轻量级网络架构方面是一个绕不开的话题,只要接触深度学习多多少少会接触。深度可分离卷积即DepthwiseSeparableConvolution,该卷积将一个常规卷积过程划分成两个完成Depthwise卷积和Pointwise卷积,在保证输出一样时,计算量大大降低。首先来看,一个常规卷积是怎么实现的。其示意图如果我们从通道数变换的角度来看,卷积就是将3通道的tensor变为了4通道的tensor,我们来看看深度可分离卷积是怎么实现通道的变化的。...

xu.hyj 1万+

Hive基础

Hive是构建在Hadoop之上的数据仓库工具,它提供了一种机制来查询和管理PB级别的分布式存储数据。Hive使用类似于SQL的查询语言——HiveQL,使得熟悉SQL的用户能够轻松地进行大数据处理。通过Hive,可以将复杂的MapReduce任务简化为简单的查询语句,极大地提高了开发效率。Hive支持多种数据格式和存储类型,如文本文件、序列化文件等,并且可以与Hadoop生态系统中的其他工具(如Pig、HBase)无缝集成。尽管Hive在处理大规模数据集方面表现出色,但在实时查询响应上存在一定的延迟,更适

m0_63924864的博客 1891

望获实时Linux与国产芯片协同:打造LinuxCNC数控机床的全栈国产化方案

本文探讨了如何通过望获实时Linux与飞腾、龙芯等国产芯片的深度协同,为LinuxCNC数控机床打造全栈国产化方案。望获实时Linux通过中断隔离等核心技术,提供亚微秒级确定性响应,解决了传统Linux系统实时性不足的痛点,使LinuxCNC得以稳定驱动高精度机床。该方案实现了从硬件、操作系统到应用软件的全栈自主可控,为工业控制领域提供了高性能、可定制的国产化选择。

weixin_29291069的博客 647

Hive原理

Hive由Facebook开发并贡献给Apache基金会,是一个用于大规模数据仓库解决方案的开源项目。它使用户能够使用类似SQL的语言(HiveQL)在Hadoop上进行数据查询和分析,而无需编写复杂的MapReduce程序。Hive适合于批处理和分析大规模数据集,广泛应用于数据仓库和数据分析场景。Hive是一个强大的数据仓库工具,能够让用户使用SQL-like的查询语言在Hadoop上进行数据分析。通过理解Hive的架构、数据存储方式和查询执行流程,可以更好地利用Hive进行大数据处理和分析。

qq_62787098的博客 1853

Transformer 跨界物理建模:探索模拟动态物理系统方法与实践(PINN、流体力学、有限元)

是一个由 Nicholas Zabaras 团队开发的开源项目,托管于 GitHub,旨在将 Transformer 模型(最初在自然语言处理领域大获成功)应用于物理系统的建模与预测。该项目基于论文 ​*“Transformers for Modeling Physical Systems”*​(Neural Networks, 2022),探索了深度学习中的 Transformer 架构如何通过自注意力机制和 Koopman 嵌入来模拟动态物理系统。

源代码杀手的博客 1190

【ACP】2025-最新-疑难题解析-1

即用户手动释放时,因实例释放保护开启,不会释放该 ECS 实例(不同云厂商具体实现有差异,但题目场景下选 C )。结合题目中标记,答案为。综上,答案选 B。综上,答案选 C。综上,答案选 D。综上,答案选 A。综上,答案选 A。综上,答案选 C。综上,答案选 D。综上,答案选 A。

jundao1997的专栏 364

Hive基本原理及环境搭建

今天我主要是在折腾这个Hive,早上看了一下书,最开始有点凌乱,后面慢慢地发现,hive其实挺简单的,以我的理解就是和数据库有关的东西,那这样的话对我来说就容易多啦,因为我对sql语法应该是比较熟悉了,而这个是HQL的,其实很多都差不多。先来看一下Hive的基本介绍: 一、Hive基本原理        hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表

朱培(知浅_ZLH) 1万+

RK3588 Buildroot 新建板级DTS

在rk3588 linux开发过程中,新创建板型主要基于硬件差异化、软件适配与优化、项目定制化等多方面需求。

501846585_QQAndroid_java 1298

Hive的基本原理(一)

1. 前言 前面讲了很多关于集群搭建、以及HDFS和MapReduce的基本操作,接下来终于能学习新的内容了。。 Hive本身是数据仓库,那么什么是数据仓库呢? 数据仓库是为了协助分析报告,支持决策,为需要业务智能的企业提供业务流程的改进和指导,从而节省时间和成本,提高质量。它与数据库系统的区别是,数据库系统可以很好的解决事务处理,实现对数据的“增删改查”操作,而数据仓库则是用来查询分析的数据库...

Mr_qing的博客 594

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

hive 实践(二):hive基本原理

Hive基本原理        hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。        Hive将元数据存储

csolo的博客 1009

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Hive的基本原理与使用

 Hive的基本原理与使用 本文转自:http://tiechou.info/?p=33 简介 Hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据。Hive可以将结构化的数据存储在数据仓库中,通过自己的SQL去查询分析需要的内容,这套SQL简称Hive SQL。它与关系型数据库的SQL略有不同,但支持了

商亮的专栏 604

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【大数据技术】Hive基本原理以及使用教程

可以编写自定义函数(UDF、UDAF)并在Hive中注册和使用以扩展功能。

后端研发工程师Marion的博客 815
上一篇: yarn集群搭建
下一篇: Hive的三种搭建模式及远程方式详细搭建步骤
thyyyyyyy
博客等级 码龄8年 16粉丝 15原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值