1.4.3Hive(理论)

总目录:https://blog.csdn.net/qq_41106844/article/details/105553392

Hadoop - 子目录:https://blog.csdn.net/qq_41106844/article/details/105553369

 

什么是HIVE

HIVE是由Facebook开源(目前移交Apache)用于解决海量结构化日志的数据统计。
他是一个基于Hadoop的数据仓库工具,可以将结构化数据映射成一张表,并提供类SQL的查询服务。
HIVE原理本质上是一个将HQL语句转换为MapReduce的转换器。

 
20155953-23d90efaf5aa4313.png
原理

 

  • HIVE处理的数据保存在HDFS上
  • HIVE默认的底层实现是MapReduce(慢,吞吐量大)
  • 程序运行在YARN上

HIVE可以理解为Hadoop的客户端,让人更方便的操作内部存储的数据。也是Hadoop生态圈中少有的不是分布式框架的组件。毕竟没有听说过谁的chrome浏览器还是分布式的。

HIVE的优缺点

HIVE的优点

  • 接口是类SQL语言,提高开发能力,降低学习成本。
  • HIVE的延迟高,因此HIVE做数据分析的场景对实时性要求不高。
  • HIVE的优势在于处理海量数据,对小数据没有优势,毕竟延迟高,底层还是MR。
  • HIVE支持自定义函数,用户可以按照自己的需求自定义函数。

HIVE的缺点

  • HQL表达能力有限,这是SQL的通病,例如无法表示迭代式算法。
  • 不擅长数据挖掘
  • 效率低,底层是MR。
  • 调优比较困难,是粗粒度处理。

HIVE的架构原理

 
20155953-c8a45475c56fb7d3.png
架构图

HIVE本质是一个客户端,所以在这个框架里面很多东西并不在HIVE中,元数据存放在关系型数据库中,上端是用户的操作,下端是MR。
之后中间四个器是HIVE的,这四个器的运行顺序是解析器-->编译器-->优化器-->执行器。

  • 解析器
    将SQL字符串转化为抽象语法树AST,这一步使用第三方工具完成,例如antlr。
    之后对AST进行语法分析,例如表是否存在,语法是否错误。

  • 编译器
    将AST编译生成逻辑执行计划。

  • 优化器
    对逻辑执行计划进行优化。

  • 执行器
    将逻辑执行计划转换成可执行的物理计划,既MapReduce。

ANTLR解析阶段

 
20155953-72785d54f34a1add.png
ANTER

HIVE运行原理

 
20155953-182af1b389d22535.png
运行原理

HIVE和数据库的区别

查询语言的区别

因为SQL被广泛用于数据仓库方面,因此专门针对HIVE的特性设计了类SQL语言--HQL。
这使得熟悉SQL的开发者可以方便使用HIVE进行开发。

数据存放位置的区别

HIVE是建立在Hadoop之上,所以数据存储在HDFS中。
数据库则是存储在本地文件系统中。

数据更新

由于HIVE是针对数据仓库应用设计的,而数据仓库的内容是读多写少。因此,HIVE不建议对数据仓库进行频繁读写,所有的数据再存入时就要确定好。
而数据库的数据是要频繁读写的,因此可以使用语句来添加修改数据。

索引

HIVE没有索引,也不需要索引。他读取数据就是暴力扫描所有数据
而数据库需要根据实际应用对一个或多个建立索引,方便读取和检索。

执行

HIVE的查询时基于MapReduce实现的,数据库则是有自己的执行引擎。

执行延迟

HIVE的读取是直接暴力扫描所有数据,而且底层还是MR,双重延迟,导致HIVE延迟很高,但是这个高是相对的,HIVE可以处理海量数据还保持一个可以接收的延迟。
在和数据库比较时,HIVE的并行处理能力优势就得到的体现。

可扩展性

HIVE的存储是基于Hadoop的HDFS,世界上最大的hadoop集群是Yahoo的集群(4W台服务器,600PB数据,19个集群。)
而oracle最多也不过百台服务器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒 暄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值