00:00
本节课我们来讨论一下haveve的体系架构。首先简单了解一下hive hive是基于hioop至上的数据仓库平台,提供了数据仓库的相关功能。因此要安装部署hive,首先需要安装部署hadoop hive将所有的数据存入HDFS,在hive中创建一张表,表对应于HDFS的一个目录。Hive同时也支持创建分区表,分区也对应于HDFS的一个目录。Hive表中的数据对应于HDFS的文件。Hive支持使用SQL语句来处理存储在hiop中的大数据。但严格意义上,Haveve支持的并不是SQL,而是HQL,它是SQL的一个子集,HQL的全称是haveve query language, 它并不100%支持SQL的标准。有了这些基本的知识,下面详细讨论一下hive的体系架构。Hive最底层是HDFS,它将所有的表和数据以目录或者文件的形式存。
01:00
处在HDFS中。Haveve的核心是haveve driver, 它是haveve的执行引擎,这里可以把它理解成是一个翻译器。在默认的情况下,Haveve driver将会把HQL语句翻译成mapreduce任务运行在yarn集群上。由于Mapreduce执行的效率较慢,因此在实际使用中,更多的情况下是将Spark作为hive的执行引擎。有了hive driver的支持,就可以通过三种不同的方式来执行HQ Li语句了。第一种方式是c Li, 它的全称是command line interface, 它是haveve提供的命令行工具,使用方法类似于MYSQL的命令行工具。第二种方式是JDBC,它的全称是Java data base connectivity, 它是Java提供的一套标准接口,用于访问关系型数据库。第三种方式是h wi, 它的全称是haveve web interface, 但该工具从haveve 2.3版本开始就被废弃掉了,C Li和h wi可以将要执行。
02:00
的HQL语句直接提交给haveve driver, 但是通过JDBC执行HQL必须要haveve server2进行提交。在整个hive的体系架构中,还需要一个关系型数据库来保存hive的源信息。官方推荐使用mysql hive的源信息指的是结构信息,例如表名、列名和列的类型等。现在你已经知道have的体系架构了,那你知道haveve的数据模型都有哪些吗?欢迎评论区留言讨论好了,记得点加号关注赵玉强老师。
我来说两句