
2.5 Hive
Hive是大数据平台的数据仓库工具。如果说Hadoop工具使得大数据系统中的数据有统一的物理存储管理平台,那么Hive工具就使得大数据系统中的数据有统一的基于业务逻辑的管理平台。
Hive架构如图2-6所示。
从图2-6中可以看出,Hive通过Client(客户端)或JDBC等连接器发送对应的SQL语句,并通过Thrift Server服务开启的指定端口接收并转发给对应的Hive 驱动器,然后其被解析为Hadoop可以识别的调度命令。Hadoop则用来完成Hive作为接口提交的数据计算任务的具体调度计算,以及将最终的数据写入HDFS。

图2-6 Hive架构图
企业一般选择Hive作为大数据平台的逻辑处理平台有以下原因:
• Hive是一个把SQL转化为MapReduce任务的工具。这也意味着我们可以用非常便于入门使用的SQL开发语言来进行数据业务逻辑的梳理整合。
• Hive是基于Hadoop的工具,所以计算资源由Hadoop的YARN和MR(MapReduce)来实现分布式并行计算任务和计算资源按需平滑扩展。存储资源也由Hadoop的HDFS实现分布式存储,并实现存储空间的按需平滑扩展。
• Hive支持将多种开发语言编写的函数代码集成到Hive环境中,并在简单配置后就可以直接使用。另外,基于Hive SQL的开发语言对数据异常的兼容性也比较好。这大大增强了Hive SQL作为业务逻辑梳理和数据治理的开发语言优势。
• 利用Hive以表为对象的管理和开发方式,可以方便地把传统数据仓库的维度建模理论应用到大数据系统的数据仓库模型构建中来。
2.5.1 安装文件的准备
首先,使用wget从Apache官网在线下载Hive安装包apache-hive-2.3.4-bin.tar.gz。
然后,解压缩对应的下载包:

2.5.2 配置环境变量和安装MySQL
根据操作系统的版本,使用下载命令直接下载对应的软件包。本书以CentOS系统环境为例:

在CentOS环境下,使用以下命令安装MySQL:

启动MySQL,创建hivemeta数据库并做相关配置。
2.5.3 配置Hive参数
配置Hive的系统环境变量:

通过输入echo命令,验证$HIVE_HOME是否可以显示对应的配置绝对路径/home/hadoop/ bigdata/hive(在各节点上确认默认路径)。
解压缩文件并重命名3个配置文件,参见下面的命令行:

各配置文件的主要参数更改如下:

在$HIVE_HOME目录下创建目录log,以存放Hive运行日志。


将mysql-jdbc驱动jar文件复制到$HIVE_HOME/lib目录。
之后运行命令$HIVE_HOME/bin/schematool -dbType mysql -initSchema,初始化MySQL中的Hive元数据表。
2.5.4 验证Hive的相关服务
Hive安装完成后需要启动对应的metastore服务和HiveServer2服务,这样即可执行Hive的操作任务。

可使用ps -ef命令验证、查看相关的Hive服务。
以hive Client命令行方式输入hive命令,进入Hive数据库命令的交互界面,并输入show databases命令以显示数据库。