Hive 入门教程

hive 没有诞生的时候,我们对一个需求写大量的程序代码来实现 mr 的逻辑,产生很多重复代码,也会有很多重复的逻辑,这个时候 hive 应运而生。

hive 可以把一段 sql 代码转化为 mr 去执行然后的得到结果,他是 facebook 开源,用于解决海量结构化日志的数据统计工具,它可以把结构化的数据统计为一张表,并提供 SQL 或者 HSQL 来查询数据。其实这个表是不存在的。是 HIVE 映射的一张表。

执行流程:SQL 或者 HSQL 经过 HIVE 转化为 MR 然后去 HDFS 查询

Hive的架构原理

Hive的真实数据是存储在 HDFSHIVE 去计算得到需要的结果的时候使用的是 HADOOPMR,真是数据和 HIVE 表的映射存储是在元数据(MATEDATA)。

  • 用户接口层
  • cli 或者 jdbc
  • 驱动器
  • 用户对 hsql 的解析、编译、优化、以及执行
  • 元数据层
  • 存储的对规则数据的的表映射结构
  • HDFS
  • 存储了真实的数据
  • 执行层
  • MapperReduce

Hive 优缺点

优点

1:支持存储和查询超大数据量

2:操作比较方便支持类 SQL 的语法(HSQL

缺点

1:查询速度比较慢

2:犹豫底层是 MR 实现的,所以优化的话往往是优化 MRHDFS

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之后我们就可以操作了。