Hive知识点(二)--理论知识

1.概念

1.1Hive和Hadoop的关系

Hadoop:HDFS、MR、YRAN
Hive
处理的数据存储在HDFS
分析数据底层的实现MR
执行程序运行用YARN
相当于Hive将Hadoop进行了封装

1.2什么是Hive

1.Hive是有Facebook开源用于解决海量结构化日志的数据统计。
2.Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张表,并提供SQL查询

1.3Hive的本质

1.使用HQL作为查询接口
2.使用MR计算
3.使用HDFS用于存储
Hive并不存在集群的概念,只是说配置不同,其中Hive底层的引擎是MR Tez Spark ,只是一个参数进行引擎的切换,SQL用法还是不变

1.4Hive应用场合

适合离线数据处理

Hive QL(HQL):和我们的RDBMS的SQL类似,
在做离线/批处理
在Hive上一个SQL的执行速度 PK MySQL上的一个SQL的执行速度 #后者的跑的速度开,而Hive是主要应用在离线处理方便

离线的作业都是定时调度/手工执行==》最后将结果写到某个Hive

2.Hive架构

Hive架构图
其实就是一个MySQL到MR的过程,Client相当于写入MySQL,中间是处理过程,最后归结到MR中,下面是对Hive架构的详细说明

1.用户接口:Client
  1>CLI(hive shell)
  2>JDBC(java访问hive)
  3>WEBUI(浏览器访问hive)
  其中CLI和JDBC类似于写SQL语句的交互界面
以下的部分就是将HQL转化为MR,hive就是将结构化数据的文件转化为一张表
2.Meta store元数据存储

元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型、表的数据所在目录等
默认存储在自带的derby数据库中,推荐采用MySQL存储Metastore

3.Driver
包括:解析器、编译器、优化器、执行器

  1>解析器(SQL Parser):将SQL字符串转化成抽象语法树AST。比如:表是否存在、字段是否存在等
  2>优化器(Query Optimizer):对语句进行优化

  3>Physical Plan:经逻辑执行计划转化成可以运行的物理计算

  4>执行器(Execution):对物理计划进行执行

如:select substring(ip,0,4) ip_prex from stu;

举例说明

如:select substring(ip,0,4) ip_prex from stu;
首先解析查询stu这张表,在meta store中获取表在HDFS中的存放位置,表的结构等信息。
查看是否可以语句优化(对于相同的SQL语句,不同的写法, 执行的效率和性能是不同的)
转化成物理计划,查看是否有Reduce,有多少MR,以及吮吸
最后再根据物理计划一层层的执行MR任务。

MetoStore:所以选择Hadoop HA安装模式
一旦Meto挂掉,HDFS源数据的元数据就没有
Hive的元数据是存放在MySQL《==MetoStore
MetoStore是一个通用的组件:SparkSQL/Flik/Impala/Presto  Hive中创建的表,在其他框架也是可以访问的

3.Hive PK RDMBS

相同点:

1.语句都是使用SQL
2.都支持事务 ,只是大数据有版本要求,但是大数据离线基本不会用到事务
3.insert(values)/update/delete 其中hive也可以用,但是这些都最好不用,会产生一些问题

不同点:

1.规模 RDMBS(20-30)
2.成本 MySQL成本高
3.数据体量 hadoop只要计算和存储硬件够,就可以

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值