Hive复习之基础知识

1.Hive入门

1.1什么是Hive

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据映射为一张表,并提供类SQL的查询功能。
特点:1.Hive的底层是将HQL转化称MapReduce程序
	  2..Hive处理的数据存储在HDFS上
	  3.执行程序运行在Yarn

1.2Hive的优缺点

优点缺点
1.采用类SQL的语法,简单、容易上手1.由于底层是转化为MapReduce来运行,所以执行延迟比较高,不适合用于实时性要求高的场合{表达能力有限:迭代式算法无法表达;数据挖掘方面不擅长}
2.避免了直接写MapReduce,减少开发人员的学习成本2.Hive的优势在于处理大数据,对于小数据没有优势
3.支持用户自定义函数,用户可以根据自己的需求来实现自己的函数3.调优比较困难,粒度较粗

1.3Hive的架构原理

在这里插入图片描述
【备注:上图是一张比较官方的一张图,下图是简化之后的】
在这里图片描述

组件描述
ClientCLI(Hive shell) 、JDBC/ODBC(java访问Hive)、WEBUI(浏览器访问Hive)
Metastore元数据,包括:表名、表所属的数据库(默认default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等(默认存储在自带的derby数据库,推荐使用MySQL)
Hadoop使用HDFS存储,使用MapReduce进行计算(包含*的查询,比如select * from tbl不会生成MapRedcue任务)
Driver(1)解析器(SQL Parser) :将SQL字符串转换称抽象语法树AST,对AST进行语法分析,比如表是否存在、字段是否存在、SQL语义是否有误
(2)编译器(Physical Plan):将AST编译生成逻辑执行计划
(3)优化器(Query Optiimizer) :对逻辑执行计划进行优化
(4)执行器(Execution) :把逻辑执行计划转换成可以运行的物理计划,对于Hive来说,就是MR/Spark

1.4 Hive和数据库的比较

  1. Hive采用了类SQL的查询语言HQL,因此很容易将Hive理解成为数据库,但是从结构上来看,Hive和数据库除了查询语言类似外,再无类似之处。
  2. 数据库可用在Online的应用中,但是Hive是为数仓而设计的,目的是处理离线的大数据。
  3. Hive不适合用于联机(Online)事务处理,也不适合实时查询功能。它最适合应用于大量不可变数据的批处理作业。
  4. Hive和数据库的比较如下表:
    在这里插入图片描述

2.Hive安装

https://cwiki.apache.org/confluence/display/Hive/GettingStarted

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值