Hive有关介绍

  • Hive是什么
  • 使用Hive的好处
  • Hive的特点
  • Hive架构
  • Hive工作原理
  • Hive的适用场景
  • Hive中表的分类
  • Hive与HBase的联系和区别
    • Hive与HBase的联系
    • Hive与HBase的区别

Hive是什么

(1)由Facebook开源,最初用于解决海量结构化的日志数据统计问题;
​(2)构建在Hadoop之上的数据仓库;
(3)Hive定义了一种类SQL查询语言:HQL(类似SQL但不完全相同);
​(4)通常用于进行离线数据处理(采用MapReduce);
​(5)底层支持多种不同的执行引擎(Hive on MapReduce、Hive on Tez、Hive on Spark);
​(6)支持多种不同的压缩格式、存储格式以及自定义函数(压缩:GZIP、LZO、Snappy、BZIP2… ;
​(7)存储:TextFile、SequenceFile、RCFile、ORC、Parquet ; UDF:自定义函数)。

使用Hive的好处

(1)简单、容易上手(提供了类似SQL查询语言HQL);
​(2)为超大数据集设计的计算/存储扩展能力(MR计算,HDFS存储);
​(3)统一的元数据管理(可与Presto/Impala/SparkSQL等共享数据)。

Hive的特点

(1)它存储架构在一个数据库中并处理数据到HDFS。
(2)它是专为OLAP设计。
(3)它提供SQL类型语言查询叫HiveQL或HQL。
(4)它是熟知、快速、可扩展的。

Hive架构

下面的组件图描绘了Hive的结构:

该组件图包含不同的单元。下表描述每个单元:

单元名称 操作
用户接口/界面 Hive是一个数据仓库基础工具软件,可以创建用户和HDFS之间互动。用户界面,Hive支持是Hive的Web UI,Hive命令行,HiveHD洞察(在Windows服务器)。
元存储 Hive选择各自的数据库服务器,用以储存表,数据库,列模式或元数据表,它们的数据类型和HDFS映射。
HiveQL处理引擎 HiveQL类似于SQL的查询上Metastore模式信息。这是传统的方式进行MapReduce程序的替代品之一。相反,使用Java编写的MapReduce程序,可以编写为MapReduce工作,并处理它的查询。
执行引擎 HiveQL处理引擎和MapReduce的结合部分是由Hive执行引擎。执行引擎处理查询并产生结果和MapReduce的结果一样。它采用MapReduce方法。
HDFS 或 HBASE Hadoop的分布式文件系统或者HBASE数据存储技术是用于将数据存储到文件系统。

Hive工作原理

下图描述了Hive 和Hadoop之间的工作流程。
下表定义Hive和Hadoop框架的交互方式:

Step No. 操作
1 Execute QueryHive接口,如命令行或Web UI发送查询驱动程序(任何数据库驱动程序,如JDBC,ODBC等)来执行。
2 Get Plan在驱动程序帮助下查询编译器,分析查询检查语法和查询计划或查询的要求。
3 Get Metadata编译器发送元数据请求到Metastore(任何数据库)。
4 Send MetadataMetastore发送元数据,以编译器的响应。
5 Send Plan编译器检查要求,并重新发送计划给驱动程序。到此为止,查询解析和编译完成。
6 Execute Plan驱动程序发送的执行计划到执行引擎。
7 Execute Job在内部,执行作业的过程是一个MapReduce工作。执行引擎发送作业给JobTracker,在名称节点并把它分配作业到TaskTracker,这是在数据节点。在这里,查询执行MapReduce工作。
7(1) Metadata Ops与此同时,在执行时,执行引擎可以通过Metastore执行元数据操作。
8 Fetch Result执行引擎接收来自数据节点的结果。
9 Send Results执行引擎发送这些结果值给驱动程序。
10 Send Results驱动程序将结果发送给Hive接口。

Hive的适用场景

Hive 构建在基于静态批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,Hive 并不能够在大规模数据集上实现低延迟快速的查询。例如:Hive 在几百MB 的数据集上执行查询一般有分钟级的时间延迟。因此,Hive 并不适合那些需要低延迟的应用。例如:联机事务处理(OLTP)。

Hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive 将用户的HiveQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop 监控作业执行过程,然后返回作业执行结果给用户。Hive 并非为联机事务处理而设计,Hive 并不提供实时的查询和基于行级的数据更新操作。Hive 的最佳使用场合是大数据集的批处理作业。例如:网络日志分析。

Hive中表的分类

分类包括:内部表、外部表、分区表、桶表

分类 内容
内部表 删表时数据和表一起删除。
外部表 (1)数据已经存在于HDFS。(2)外部表只是走一个过程,加载数据和创建表同时完成,不会移动到数据仓库目录中,仅仅是和数据建立了一个连接。(3)删表数据不会删除数据。
分区表 (1)在Hive Select查询中,一般会扫描整个表内容,会消耗很多时间做没必要的工作。 分区表指的是在创建表时,指定partition的分区空间。扫描时可以只扫描某一个分区的数据。(2)分区表存储时分局所设立的分区分别存储数据(分区字段就是一个文件夹的标识)。
桶表 (1)对于每一个表(table)或者分区,Hive可以进一步组织成桶,也就是说捅是更为细粒度的数据范困划分。(2)桶表是对指定的分桶的列进行哈希运算,运算结果模(%)分桶的数量然后把数据根据运算结果分别放入这几个桶中。

内部表外部表的区分:

在导入数据到外部表,数据并没有移动到自己的数据仓库目录下,也就是说外部表中的数据并不是由它自己来管理的!
而内部表则不一样,在删除内部表的时候,Hive将会把属于表的元数据和数据全部删掉;而删除外部表的时候,Hive仅仅删除外部表的元数据,数据是不会删除的!

Hive与HBase的联系和区别

在大数据架构中,Hive和HBase是协作关系。

Hive与HBase的联系

在大数据架构中,Hive和HBase是协作关系,数据流一般如下图:

(1)通过ETL工具将数据源抽取到HDFS存储;
(2)通过Hive清洗、处理和计算原始数据;
(3)Hive清洗处理后的结果,如果是面向海量数据随机查询场景的可存入Hbase
(4)数据应用从HBase查询数据。

Hive与HBase的区别

(1)Hive中的表是纯逻辑表,就只是表的定义等,即表的元数据。Hive本身不存储数据,它完全依赖HDFS和MapReduce。这样就可以将结构化的数据文件映射为为一张数据库表,并提供完整的SQL查询功能,并将SQL语句最终转换为MapReduce任务进行运行。 而HBase表是物理表,适合存放非结构化的数据。

(2)Hive是基于MapReduce来处理数据,而MapReduce处理数据是基于行的模式;HBase处理数据是基于列的而不是基于行的模式,适合海量数据的随机访问。

(3)HBase的表是疏松的存储的,因此用户可以给行定义各种不同的列;而Hive表是稠密型,即定义多少列,每一行有存储固定列数的数据。

(4) Hive使用Hadoop来分析处理数据,而Hadoop系统是批处理系统,因此不能保证处理的低迟延问题;而HBase是近实时系统,支持实时查询。

(5) Hive不提供row-level的更新,它适用于大量append-only数据集(如日志)的批任务处理。而基于HBase的查询,支持和row-level的更新。

(6)Hive提供完整的SQL实现,通常被用来做一些基于历史数据的挖掘、分析。而HBase不适用与有join,多级索引,表关系复杂的应用场景。

ps:望多多支持,后续更新中。。。

Hive全面介绍(有点详细)相关推荐

  1. Computer:计算机测试理论(开发/测试/上线)之DEV、SIT、UAT、PRD四套环境详细介绍之详细攻略

    Computer:计算机测试理论之DEV.SIT.UAT.PRD四套环境详细介绍之详细攻略 目录 测试理论 1.DEV.SIT.UAT.PRD四套环境的简介 SIT测试 和UAT测试对比

  2. Hive创建外部表详细步骤

    Hive创建外部表详细步骤 一.创建外部表 二.hdfs建立文件夹存放数据 三.准备数据 四.上传数据到HDFS目录 五.Hive表关联文件得到数据 六.查询数据 一.创建外部表 create ext ...

  3. 各种交换机接口及连接方法介绍【详细图文】

    各种交换机接口及连接方法介绍[详细图文] 交换机是使用非常广泛的网络设备,一个家庭如果有两台电脑,那么就很可能选择交换机来共享上网,而一个局域网,交换机是必不可少的设备. 各种交换机接口 交换机的接口 ...

  4. Computer:计算机测试理论(开发/测试/上线)之DEV、SIT、UAT、PRD四套环境(测试环境/开发环境/生产环境)详细介绍之详细攻略

    Computer:计算机测试理论(开发/测试/上线)之DEV.SIT.UAT.PRD四套环境(测试环境/开发环境/生产环境)详细介绍之详细攻略 目录 测试理论 1.DEV.SIT.UAT.PRD四套环 ...

  5. Rational Rose 2007简单介绍及详细安装步骤

    Rational Rose 2007简单介绍及详细安装步骤 Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具.用于可视化建模和公司级水平软件应用的组件构 ...

  6. 计算机课高数怎么过,我是大一新鸟,学软件,想向大虾们讨教几手,我有高数,英语,法律.计算机,4门课,我该怎么学!介绍越详细越好,...

    我是大一新鸟,学软件,想向大虾们讨教几手,我有高数,英语,法律.计算机,4门课,我该怎么学!介绍越详细越好, 來源:互聯網  2009-07-30 08:58:23  評論 分類: 煩惱 >&g ...

  7. SketchUp:SketchUp草图大师软件界面介绍之详细攻略

    SketchUp:SketchUp草图大师软件界面介绍之详细攻略 目录 SketchUp草图大师软件界面介绍 顶部菜单栏 工作区右键 上部栏 左常用工具 <

  8. Matlab:Matlab软件之Simulink的简介、特点、使用方法、界面介绍之详细攻略

    Matlab:Matlab软件之Simulink的简介.特点.使用方法.界面介绍之详细攻略 目录 Simulink的简介 Simulink的特点 Simulink的使用方法 Simulink的界面介绍 ...

  9. 联邦学习算法介绍-FedAvg详细案例-Python代码获取

    联邦学习算法介绍-FedAvg详细案例-Python代码获取 一.联邦学习系统框架 二.联邦平均算法(FedAvg) 三.联邦随梯度下降算法 (FedSGD) 四.差分隐私随联邦梯度下降算法 (DP- ...

最新文章

  1. SQL Server-流程控制 5,Goto 语句
  2. JVM系列三:JVM参数设置、分析
  3. 张家口zec挖矿软件哪里下载_AMTO软件下载-AMTO挖矿官网版v1.1
  4. Lecture 6 Order Statistics
  5. Linux——VIM学习选取多行(转)
  6. 终于把结婚照片做成了MTV
  7. series、dataframe转为tensor格式数据
  8. 在linux环境下模拟实现简单命令解释器_git bash 竟然不支持 tree 命令
  9. Bailian2801 填词 POJ1629 ZOJ1546 Fillword【排序】
  10. 用法getline(cin,a)和cin.getline(a,20) 能将空格输出
  11. C语言之避免编译警告:unused用法(七)
  12. (10)进程---Manager数据共享
  13. LNMP之PHP服务的安装(FastCGI方式)
  14. 十九、FPGrowth算法介绍
  15. 硬盘SMART检测参数详解
  16. unity tier setting
  17. 修改ubuntu桌面分辨率方法
  18. how-I-hacked-Facebook-again-unauthenticated-RCE-on-MobileIron-MDM笔记
  19. 微信小程序集成腾讯IM,实现实时音视频通话,1V1聊天
  20. 在运行里输入打开WIN工具。

热门文章

  1. 哈佛商业评论:中国互联网公司“出海”攻略 -TOP Network CMO Noah评论
  2. 青龙面板羊毛脚本之太太乐积分话费
  3. 深圳弘辽科技电商从百度一季度营收看移动互联网时代风口与布局
  4. c++builder实现文件拖拽与U盘复制---YYB原创(转载请注明出处)
  5. 【毕业设计】Java SpringBoot农村留守儿童爱心帮扶平台
  6. 微软技术赋能阵地-2月课程预告
  7. 罗技设备 - 使用技巧
  8. 作业总结(链接、路径、表格)
  9. html验证码的原理,滑动验证码的原理并利用 Vue 实现滑动验证码
  10. android微信支付黑屏,Android 調用微信登陸、支付、分享,出現的白屏、黑屏、閃屏問題。...