Hadoop生态系统-Hive

概念

  • 由Facebook开源,hive解决海量结构化日志的数据统计工具。Hive是基于hadoop的数据仓库工具将结构化数据映射成一张表,提供类sql的功能,查询分析数据
  • 结构化数据:由一定规则将数据拆分,或者映射成表结构,做处理。
  • 这种方式:极大简化了MR程序的编写,hive将一系列操作封装好,只需要编写类SQL语句,hive自动匹配模板运行相应的MR程序,执行任务,最后将结果转换为表的结构返回客户端。
  • hive依赖hadoop:存储数据还是在HDFS,分析数据还是MapReduce(此处执行引擎还可以更换为spark),任务还是执行在yarn

流程示意图

  • hive接收到客户端类SQL指令,使用自己的driver(驱动),结合Metastore元数据库(默认Derby数据库不支持多客户端操作后续使用MySQL),将指令翻译成MR程序,提交到hadoop执行,最后将执行结果返回給用户交互接口。在这里插入图片描述

hive的本质:将类SQL转化为MR程序

  • hive处理的数据依然保存在HDFS上
  • hive分析数据底层实现的是MapReduce(类似还有Spark)
  • 执行程序依旧运行在YARN上

优缺点

  • 优点
  1. 操作接口采用类SQL语法,简单、容易上手
  2. 避免MR程序的编写,提高效率
  3. Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合,也可以更换执行引擎为spark加快计算速率
  4. hive的优势是处理大数据对处理小数据没有优势,执行延迟比较高,
  5. 支持自定义函数
  • 缺点
  1. 类SQL的表达能力有限,迭代式算法无法表达,数据挖掘方面不擅长
  2. hive的效率比较低。Hive自动生成的MapReduce作业,通常情况下不够智能化(机翻)。Hive调优比较困难,粒度较粗(封装性较高)

架构原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 优化器:AjoinB优化为BjoinA,通常就是小表驱动大表避免低级错误

hive不是数据库,hive是为数据仓库设计的

  • hive采用类SQL语言HQL,很相似。
  • hive针对数据仓库设计,依赖hdfs,数据更新基本不涉及
  • 执行延迟高,原因:1.底层是MR程序,需要一系列准备工作,比如切片,提交任务到yarn,调度资源,调度队列中等待执行2.查询数据的时候,由于没有索引,需要扫描整个表
  • 数据规模上hive面向大数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值