Hive 入门教程
hive
没有诞生的时候,我们对一个需求写大量的程序代码来实现 mr
的逻辑,产生很多重复代码,也会有很多重复的逻辑,这个时候 hive 应运而生。
hive
可以把一段 sql
代码转化为 mr
去执行然后的得到结果,他是 facebook
开源,用于解决海量结构化日志的数据统计工具,它可以把结构化的数据统计为一张表,并提供 SQL
或者 HSQL
来查询数据。其实这个表是不存在的。是 HIVE
映射的一张表。
执行流程:SQL
或者 HSQL
经过 HIVE
转化为 MR
然后去 HDFS
查询
Hive的架构原理
Hive的真实数据是存储在 HDFS
,HIVE
去计算得到需要的结果的时候使用的是 HADOOP
的 MR
,真是数据和 HIVE
表的映射存储是在元数据(MATEDATA
)。
- 用户接口层
-
cli
或者jdbc
- 驱动器
- 用户对
hsql
的解析、编译、优化、以及执行
- 元数据层
- 存储的对规则数据的的表映射结构
HDFS
层
- 存储了真实的数据
- 执行层
MapperReduce
Hive 优缺点
优点
1:支持存储和查询超大数据量
2:操作比较方便支持类 SQL
的语法(HSQL
)
缺点
1:查询速度比较慢
2:犹豫底层是 MR
实现的,所以优化的话往往是优化 MR
和 HDFS
3:数据量比较小的话相对于 MYSQL
会有明显的略势
HIVE 安装
本次安装的是 HIVE 的 3.1.2 版本
下载
我们可以从官网下载:HIVE 3.1.2
Linux
下可以使用命令下载:wget https://dlcdn.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
上传 & 解压
tar -zcvf apache-hive-3.1.2-bin.tar.gz -C /opc/root
-C 之后的参数代表你要解压到的位置
配置环境变量
- 打开环境变量的配置文件
vim /etc/profile
- 写入一下配置
# 配置你的 HIVE 存放的路径
export HIVE_HOME=/opc/module/hive-3.1.2
export PATH=$PATH:$HIVE_HOME/bin
- 刷新环境变量:
source /etc/profile
启动Hive
hive启动需要对元数据存储的数据库指定,默认是 derby 数据库。
初始化 Derby 数据库
bin/schematool -initSchema -dbType derby
初始化以后会在我们执行这个命令的路径下生成一些文件夹那就是我们存放元数据的文件夹
启动并且链接 hive
有了derby 数据库我们就可以启动 hive数据库了
hive
直接执行hive就可以了,因为我们在环境变量存放了hive的路径所以可以直接执行的hive命令,启动hive之后我们就可以操作了。