Hive简介

Hive是一个基于Hadoop的数据仓库工具,提供类SQL查询语言HQL,简化大数据处理。它适合离线分析(OLAP)、扩展性和元数据管理,但效率较低,不适合实时查询。Hive的执行引擎可选MR、Spark、Tez,其工作流程涉及查询解析、编译和MapReduce执行。
摘要由CSDN通过智能技术生成

Hive简介

hive是一个构建在Hadoop上的数据仓库工具(框架),可以将结构化的数据文件映射成一张数据表,并可 以使用类sql的方式来对这样的数据文件进行读,写以及管理(包括元数据)。这套HIVE SQL 简称 HQL。hive的执行引擎可以是MR、spark、tez。

如果执行引擎是MapReduce的话,hive会将Hql翻译成MR进行数据的计算。 用户可以使用命令行工具 或JDBC驱动程序来连接到hive。

Hive的优缺点

优点

1.学习成本低
提供了类SQL查询语言HQL(简单,容易上手),避免了直接写MapReduce(适合java语言不好的,sql 熟练的人),减少开发人员的学习成本。

2.可扩展性好
为超大数据集设计了计算/扩展能力(MR作为计算引擎,HDFS作为存储系统),Hive可以自由的扩展集 群的规模,一般情况下不需要重启服务。

3.适合做离线分析处理(OLAP)
Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合。

4.延展性好
Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。

5.良好的容错性
某个数据节点出现问题HQL仍可完成执行。

6.统计管理
提供了统一的元数据管理

缺点

  1. hive的HQL表达能力有限
    迭代式算法无法表达,比如PageRank(网页排名)
    数据挖掘方面,比如kmeans(k均值聚类算法)

  2. hive的效率比较低
    hive自动生成的mapreduce作业,通常情况下不够智能化
    hive调优比较困难,粒度较粗

Hive架构

在这里插入图片描述

HIve工作原理

在这里插入图片描述

  1. 用户提交查询等任务给Driver。

  2. 驱动程序将Hql发送编译器,检查语法和生成查询计划。

  3. 编译器Compiler根据用户任务去MetaStore中获取需要的Hive的元数据信息。

  4. 编译器Compiler得到元数据信息,对任务进行编译,先将HiveQL转换为抽象语法树,然后将抽象语法树转换成查询块,将查询块转化为逻辑的查询计划,重写逻辑查询计划,将逻辑计划转化为物理的计划 (MapReduce), 最后选择最佳的策略。

  5. 将最终的计划提交给Driver。到此为止,查询解析和编译完成。

  6. Driver将计划Plan转交给ExecutionEngine去执行。

  7. 在内部,执行作业的过程是一个MapReduce工作。执行引擎发送作业给JobTracker,在名称节点并把它 分配作业到TaskTracker,这是在数据节点。在这里,查询执行MapReduce工作。

    7.1 与此同时,在执行时,执行引擎可以通过Metastore执行元数据操作。

  8. 执行引擎接收来自数据节点的结果。

  9. 执行引擎发送这些结果值给驱动程序。

  10. 驱动程序将结果发送给Hive接口。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值