参考视频
黑马程序员Hive全套教程,大数据Hive3.x数仓开发精讲到企业级实战应用_哔哩哔哩_bilibili
介绍
Apache Hive是一款建立在Hadoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似SQL的查询模式,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集
Hive核心是将 HQL转换成MapReduce程序,然后将程序提交到Hadoop集群执行。
Hive由Facebook实现并开源
Hive和Hadoop关系
从功能上来说,数仓至少具备 存储数据 和 分析数据 的能力
Apache Hive 作为一款大数据时代的数仓软件,具备以上能力。只是Hive并不是自己实现,而是借助Hadoop。
Hive利用HDFS存储数据,利用MapReduce查询分析数据。
Hive的最大优点在于让用户专注于编写HQL,Hive帮你转换成MapReduce程序完成对数据的分析
被称为 Sql On Hadoop
Hive的理解
1 Hive能将数据文件映射成一张表,这个映射指什么?
答:文件和表之间的对应关系
在Hive中能够写sql处理的前提是针对表,而不是针对文件,因此需要将文件和表之间的对应关系描述记录清楚。
映射信息 专业的叫法称之为 元数据信息(元数据是指用来描述数据的数据metadata)
具体看,要记录的元数据信息包括:表对应哪个文件(位置信息),表的列对应文件的哪个字段(顺序信息),文件字段的分隔符是什么
2 Hive的本身到底承担了什么功能职责?
答:SQL语法解析编译成为MapReduce
结构
1 客户端 ;
2 Hive对sl的语法解析,编译,执行计划变化;
3 Hadoop (MapReduce,Yarn,HDFS)
4 元数据存储
架构,组件
1 用户接口:
CLI(command line interface,为shell命令行访问)
JDBC/ODBC
WebGUI(浏览器访问)
2 元数据存储
通常是存储在关系数据库,如mysql/derby中。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等
3 Hive 的 Driver 驱动程序
功能:语法解析器,计划编译器,优化器,执行器
完成HQL查询语句从词法分析,语法分析,编译,优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有执行引擎调用执行。
元数据(Metadata)
元数据(metadata),又称中介数据,中继数据,为描述数据的数据。主要是描述数据属性的信息,用来支持如指示存储位置,历史数据,资源查找,文件记录等功能
Hive Metadata 即 Hive 的元数据,元数据存储在关系型数据库中,如hive内置的Derby,或者第三方如Mysql等
元数据服务(Metastore)
Metastore 即 元数据服务,作用是管理metadata元数据,对外保留服务地址,让各种客户端通过脸颊metastore服务,由metastore再去连接Mysql数据库来存取元数据
服务配置由3种模式: 内嵌模式,本地模式,远程模式。
内嵌模式 | 本地模式 | 远程模式(企业一般这个) | |
Metastore单独配置、启动 | 否 | 否 | 是 |
Metastore存储介质 | derby | mysql | mysql |
远程模式:
在生产环境中,建议用远程模式来配置HIve Metastore。在这种情况下,其他依赖hive的软件都可以通过Metastore访问hive。由于还可以完全屏蔽数据库层,因此这也带来了更好的可管理性,安全性
hive提供的连接:
老版本:bin/hive 连接Metastore
.../hive-3.1.2/bin/hive
新版