大数据开发之数仓工具Hive(一)
Hive产生的背景
Hive的产生是基于mr计算框架的,简单的说就是mr学习过于复杂,成本过高,所以hive的初心是对mr做一层包装,让大家能利于sql的优势来处理数据。
直接使用MapReduce处理大数据,将面临以下问题:
1:MapReduce 开发难度大,学习成本高(wordCount => Hello World)
2:Hdfs文件没有字段名、没有数据类型,不方便进行数据的有效管理
3:使用MapReduce框架开发,项目周期长,成本高
Hive是基于Hadoop的一个数据仓库工具,可以将 结构化的数据文件 映射为一张表(类似于 RDBMS中的表 ),并提供类SQL查询功能;Hive是由Facebook开源,用于解决海量结构化日志的数据统计。
Hive本质是:将 SQL 转换为 MapReduce 的任务进行运算
底层由HDFS来提供数据存储
可以将Hive理解为一个: 将 SQL 转换为 MapReduce 任务的工具
如题:数仓是什么?
数据仓库(Data Warehouse)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,主要用于管理决策。(数据仓库之父比尔·恩门,1991年提出)。
1:数据仓库的目的:构建面向分析的、集成的数据集合;为企业提供决策支持
2:数据仓库本身不产生数据,数据来源于外部
3:存储了大量数据,对这些数据的分析和处理不可避免的用到Hive
Hive和RDBMS对比
由于 Hive 采用了类似SQL 的查询语言 HQL(Hive Query Language),因此很容易将Hive 理解为数据库。其实从结构上来看,Hive 和传统的关系数据库除了拥有类似的查询语言,再无类似之处。
查询语言相似: HQL <=> SQL 高度相似
由于SQL被广泛的应用在数据仓库中,因此,专门针对Hive的特性设计了类SQL的查询语言HQL。熟悉SQL开发的开发者可以很方便的使用Hive进行开发。
数据规模: Hive存储海量数据;RDBMS只能处理有限的数据集;
由于Hive建立在集群上并可以利用MapReduce进行并行计算,因此可以支持很大规模的数据;而RDBMS可以支持的数据规模较小。
执行引擎: Hive的引擎是MR/Tez/Spark/Flink;RDBMS使用自己的执行引擎 ,Hive中大多数查询的执行是通过 Hadoop 提供的 MapReduce 来实现的。而RDBMS 通常有自己的执行引擎。
数据存储: Hive保存在HDFS上;RDBMS保存在本地文件系统或裸设备,Hive 的数据都是存储在 HDFS 中的。而RDBMS是将数据保存在本地文件系统或裸设备中。
执行速度: Hive相对慢(MR/数据量);RDBMS相对快;Hive存储的数据量大,在查询数据的时候,通常没有索引,需要扫描整个表;加之Hive使用MapReduce作为执行引擎,这些因素都会导致较高的延迟。而RDBMS对数据的访问通常是基于索引的,执行延迟较低。当然这个低是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,Hive的并行计算显然能体现出并行的优 势
可扩展性: Hive支持水平扩展;通常RDBMS支持垂直扩展,对水平扩展不友好 Hive建立在Hadoop之上,其可扩展性与Hadoop的可扩展性是一致的(Hadoop集群 规模可以轻松超过1000个节点)。而RDBMS由于 ACID 语义的严格限制,行扩展非常 有限。目前最先进的并行数据库 Oracle 在理论上的扩展能力也只有100台左右。
数据更新: Hive对数据更新不友好;RDBMS支持频繁、快速数据更新 Hive是针对数据仓库应用设计的,数据仓库的内容是读多写少的。因此,Hive中不建议对数据进行改写操作,所有的数据都是在加载的时候确定好的。而RDBMS中的数据需要频 繁、快速的进行更新。
Hive的优缺点
Hive的优点
1:学习成本低。Hive提供了类似SQL的查询语言,开发人员能快速上手;
2:处理海量数据。底层执行的是MapReduce 任务;
3:系统可以水平扩展。底层基于Hadoop;
4:功能可以扩展。Hive允许用户自定义函数;
5:良好的容错性。某个节点发生故障,HQL仍然可以正常完成;
6:统一的元数据管理。元数据包括:有哪些表、表有什么字段、字段是什么类型;
Hive的缺点
1:HQL表达能力有限;
2:迭代计算无法表达;
3:Hive的执行效率不高(基于MR的执行引擎);
4:Hive自动生成的MapReduce作业,某些情况下不够智能;
5:Hive的调优困难;
Hive架构
如上图:
用户接口 CLI(Common Line Interface) :Hive的命令行,用于接收HQL,并返回结果; JDBC/ODBC :是指Hive的java实现,与传统数据库JDBC类似; WebUI :是指可通过浏览器访问Hive。
Thrift Server :Hive可选组件,是一个软件框架服务,允许客户端使用包括Java、C++、Ruby和其他很多种语言,通过编程的方式远程访问Hive;
元数据管理(MetaStore) Hive将元数据存储在关系数据库中(如mysql、derby)。Hive的元数据包括:数据库名、表名及类型、字段名称及数据类型、数据所在位置等;
解释器 (SQLParser) :使用第三方工具(antlr)将HQL字符串转换成抽象语法树(AST);对AST进行语法分析,比如字段是否存在、SQL语义是否有误、表是否存在;
编译器 (Compiler) :将抽象语法树编译生成逻辑执行计划;
优化器 (Optimizer) :对逻辑执行计划进行优化,减少不必要的列、使用分区等;
执行器 (Executr) :把逻辑执行计划转换成可以运行的物理计划;
Hive通过CLI,JDBC/ODBC或HWI接受相关的Hive SQL查询,并通过Driver组件进行编译,分析优化,最后编程可执行的MapReduce任务。
如上图大家不好理解,也可根据下图查看具体的执行逻辑:
原创作者:Flying Young
推荐阅读:
大数据开发之Hive
大数据开发之数据仓库Hive
大数据开发技术-Hive实战
大数据开发技术之Hive的构架原理
双十一破壁机购买攻略下单前记得看准这几点俗话说,早要吃好,午要睡饱,晚要吃少。但对于上班族来讲,想按时按晌地吃早饭却不是那么容易的事情。每一个繁忙的早上,随着时间一点一滴流逝,闹钟的催促声,让我们只能在匆忙间出门。如此一
国庆档票房超10亿姜子牙打破了哪吒的记录国庆节档正式启动,电影市场在爆发后终于迎来了第一波井喷。10月2日上午10时34分,据报道,国庆节期间,全国票房超过10亿元。国庆黄金周一直是各大电影公司争抢的档期,民生证券指出,
石头科技三季报出炉,研发投入增幅超8010月29日,石头科技(688169。SH)发布了2021年前三季财报。根据财报显示,前三季度,公司实现营业收入38。27亿元,同比增长28。43,实现归属于上市公司股东的净利润1
韩国再次申遗成功,这次中国网友还没说话,日本人先坐不住了韩国申遗已经变成了一种讽刺,网络上经常会出现这样的情节,只要我国考古有了重大发现,很多网友就会说一定要防止韩国人抢先一步。这种极具讽刺的说法,可以说是一针见血地道出了,韩国作为一个
vivoX70系列今日开售如今各大国产影像旗舰手机都在不断提升品质和口碑。9月9日19点30分,vivoX70系列新品发布会准时召开,全新一代影像旗舰正式与消费者见面,备受消费者关注。今日,vivo影像旗舰
更改一个设置,马上提升你的上网速度你知道电脑上网的解析过程吗电脑浏览网址的过程,电脑会先查询本机的HOSTS的文件,如果HOSTS文件没有匹配的网址,就会向DNS服务器发送请求,匹配相应的IP地址,电脑获取到IP地
九月交付量破万!大众ID系列逐渐升温,传统车企电动化迎来春天?文岸青10月初,大众发布了九月份的新能源汽车销量数据,大众旗下ID。系列四款车型九月共交付10126辆,季度环比增长272,成为国内首个合资品牌中纯电车型月交付量过万的传统车企。虽
各大品牌加大布局AR眼镜,三星依旧继续抢占先机AR成为万物互联时代的新窗口。智能手表的屏幕TWS可以作为手机部分功能的替代品,但智能手表的尺寸有限,屏幕太小,使用体验大打折扣。智能眼镜则很好地弥补了这一缺陷,它可以通过投射将虚
颜值价格性能opporeno6中端机也有高颜值?直角边框65W闪充,还有6400万三摄手机市场的竞争越来越激烈,不少厂商被迫开启性价比模式。即使有竞争对手,也很难再次看到坑爹机。为了留住用户,不仅价格开始下降,
小米平板5官方配件照片曝光,外观将有较大变化从目前互联网上关于小米平板电脑5的泄密来看,人们期待已久的产品应该不会太遥远。据相关信息显示,小米平板电脑5很可能在8月中下旬发布,及时为新生上市。照片显示,小米平板电脑5背面左上
excel表里一个超实用的功能平时我们在使用Excel办公时,是不是经常遇到单元格使用了公式后,但是里面的数值没有按公式进行更新呢,要双击下单元格,里面的数值才会发生变化。有时在别处复制过来的数据,都挤在第一列