Hive概述
Posted 杀智勇双全杀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive概述相关的知识,希望对你有一定的参考价值。
Hive概述
数据仓库
OLTP
联机事务处理,用于满足业务上的数据存储。
数据量小,支持事务(需要满足ACID),效率高,延迟性比较低。这种模型就是数据库。数据库工具可以实现这种存储模型,常用mysql、Oracle。
OLAP
联机分析处理,专门用于解决数据处理的数据存储的平台。
数据类大,不需要支持事务,时间的要求不高(离线的OLAP一般要求的时效性是T+1)。这种模型就是数据仓库。数据仓库工具可以实现这种模型,常用Hive、GreenPlum。
数据仓库设计
数据仓库是更加规范化和统一化的数据管理的设计模型,用于实现数据加工和处理的平台,实现数据的应用。
可以把数据仓库看作是一个数据的超市:所有数据按照分类进行存放,在数据仓库中对数据进行加工。类似笔者家里的群晖DS218J,所有数据进行集中存储。
数据仓库流程
ETL:数据清洗,将各种各样的数据按照规则进行过滤,补全、转换。
分层:数据从进入数据仓库到最后被应用,数据经过处理的步骤。
建模:表应该怎么建,表的设计。
Hive简介
Hive的诞生
源于FaceBook,用Hadoop实现大数据分析时遇到了这种问题:
分析的需求只有业务人员才知道怎么分析,但是他们不会写Java,顶多会SQL。分析的程序只有开发人员才知道怎么开发,但是他们不会写分析报表。FaceBook就让开发人员写了一个工具,将SQL语句转换为MapReduce程序。
Hive的功能
将HDFS文件映射成表数据
可以用来构建数据仓库,实现分布式的数据存储。
将SQL转换为程序并执行
将SQL转换为MapReduce/Tez/Spark的程序,提交给YARN执行。
但是MapReduce性能极差,一般要使用分布式SQL引擎Presto、Impala、SparkSQL等更先进的工具。
Hive的应用场景
作为数据仓库工具,实现数据仓库的构建。
分布式SQL计算查询。
Hive的架构
Hive客户端
连接用户与服务端。提供SQL开发界面,允许用户开发SQL,将用户开发的SQL提交给Hive的服务端。最后将服务端执行的结果返回给用户。
Hive服务端
接受客户端的请求。
SQL解析器Parser
解析用户提交的SQL语句,将SQL转换为分布式计算或者分布式存储的程序提交给Hadoop运行。
编译器Plan
将SQL生成执行计划。
优化器Optimizer
选择最优的方案来实现。
执行器Execution
执行对应的处理操作。
Hive元数据
存储整个Hive中所有核心的数据(Hive中所有数据库、表的信息),记录了HDFS文件与Hive表的映射关系。
Hive部署这篇及后续章节将继续阐述Hive。
以上是关于Hive概述的主要内容,如果未能解决你的问题,请参考以下文章