首页 > 数据库 > > Apache Hive简介
早在2007年,FaceBook为了对海量日志数据进行分析而开发了Hive,2008年开源给了Apache软件基金会,2010年Hive毕业成为Apache 顶级项目。
Facebook设计开发Hive的初衷就是让那些熟悉SQL编程方式的人也可以更好的利用hadoop,hive可以让数据分析人员只关注于具体业务模型,而不需要深入了解MapReduce的编程细节,但是这并不意味着使用hive不需要了解和学习MapReduce编程模型和hadoop,复杂的业务需求和模型总是存在的,对于Hive分析人员来说,深入了解Hadoop和Hive的原理和Mapreduce模型,对于优化查询总有益处。
Hive本质是将 HiveQL 查询转换成在 Apache Hadoop 上运行的 MapReduce 作业,查询并计算存储在Apache Hadoop分布式文件系统HDFS当中的数据,减少编写MapReduce的复杂度。
需要注意的是,Hive并不是数据库,只是一个计算存储引擎。
Hive主要提供了以下特性:
优点:
缺点:
Hive的数据是存储在HDFS上的。Hive中的库和表可以看作是对HDFS上数据做的一个映射。Hive通常运行在一个Hadoop集群上的。
默认情况下,Hive任务最终是转换成MapReduce程序放到YARN上以一系列Job的方式去执行。也可以替换为其他计算引擎,如Apache Tez、Apache Spark。
Hive的元数据,比如库表名、文件存储路径等信息,由Metastore组件负责管理。Hive的元数据存储在关系数据库里,如mysql。元数据对于hive十分重要,作为Apache Hive的核心组件,每个HQL任务都需要先查询metastore服务获取元数据,才能生成MapReduce任务。
HiveServer2是一个独立的服务,提供JDBC/ODBC接口,负责将用户提交的Hive SQL转换为MapReduce任务,然后提交到Hadoop集群上执行,并且获取MR任务结果,读取HDFS数据。支持多并发及身份验证。
HiveServer2是基于Jetty服务器实现的高性能服务。
实现JDBC协议的Hive客户端,负责对用户提交的Hive SQL进行语法检测,然后再提交到HiveServer2执行,最后获取结果进行展示。
按粒度排序,Hive 的数据组织单位分为以下几种:
来自:https://mp.weixin.qq.com/s/5b8TOMUp9aaDqE19mNYZfQ
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26692020/viewspace-3170651/ ,如需转载,请注明出处,否则将追究法律责任。