一、Hive产生背景
那么能否让用户将数据文件从一个现有的数据架构转移到 Hadoop 上来呢?假设该数据梁构是基于传统关系型数据库和 SQL 查询的。其实对于大量的 SQL 用户来说,这个问题很难解决。针对这个挑战,Hive 在Facebook 诞生了。
二、Hive是什么
1、Hive是一个基于Hadoop的数据仓库工具
2、可以将结构化的数据文件映射为一张数据库表
3、提供SQL查询功能,可以将SQL语句转化为MapReduce作业进行运行
4、可以进行数据提取、转化和加载
5、现已成为Apache顶级项目
三、Hive在Hadoop生态系统中的位置
运行 Hive 的必要环境便是 Hadoop 的核心:HDFS、 MapReduce以及YARN。也可以这样理解,Hive 是由 Hadoop 行生出来的上层应用之一:SQL on Hadoop。 Hive 执行的本质仍然是MapReduce, 但多了一步 SQL 至MapReduce 的转化操作,所以相同条件下,Hive 在运行时并没有直接编写 MapReduce 执行效率高。
四、Hive与传统关系型数据库的异同
除了上述区别外,通常 RDBMS 可以用于在线应用中,而Hive 主要进行离线的大数据分析。Hive 具有 SQL 数据库的很多类似功能,但应用场景完全不同,故在使用的时候要特别注意其的自身特性。
五、Hive的特点与优势
1、特点
①HQL与SQL 有着相似的语法,大大提高了开发效率。
②Hive 支持运行在不同的计算框架上,包括 YARN、Tez、Spark、Flink 等。
③Hive 支持 HDFS 与 HBase 上的ad-hoc。
④Hive支持用户自定义的函数、脚本等。
2、优势:
①可扩展:Hive可以自由扩展集群的规模,一般情况下无需重启服务。
②可延展:Hive支持用户自定义函数,用户可根据自己的需求来编写自定义函数。
③可容错:Hive支持用户自定义函数,用户可根据自己的需求来编写自定义函数。
六、Hive的工作流程
七、Hive架构
1、Hive客户端。
2、Hive服务端。
3、Hive 主要通过元数据存储数据库和 Hadoop 集群进行数据的存储与计算。Hive 的元数据使用 RDBMS 存储,Hive 的数据存储在 HDFS 中,大部分数据查询由 MapReduce 完成。