Hive 安装 以及使用 DataGrip 连接 Hive
Hive 安装说明
① 环境说明
Hadoop 环境已通过腾讯云服务器完成搭建,我是将 hive 安装到 该 hadoop 集群的某个节点了
Mysql 中间件使用的是阿里云的产品
② 版本说明
Hadoop 2.7.5 +Hive 2.1.1 + Mysql 5.7 + Centos 7 + DataGrip 2021
强烈建议别用 Mysql 8 这个版本
Hive 安装前的准备
① 搭建 Hadoop 环境
Hadoop 介绍及集群搭建_半吊子Kyle的博客-CSDN博客
② 安装 Mysql
我使用的是 阿里云的 Mysql
,如果你需要自己搭建请参考以下文章:
Linux 安装 Mysql_半吊子Kyle的博客-CSDN博客
③ Hive 安装包下载,软件包为 apache-hive-2.1.0-bin.tar.gz
# 也可以通过该命令,直接下载到服务器,前提是你的服务器可以连接外网
wget http://archive.apache.org/dist/hive/hive-2.1.1/apache-hive-2.1.0-bin.tar.gz
④ 准备 mysql 驱动包
Maven Repository: mysql » mysql-connector-java » 8.0.18 (mvnrepository.com)
⑤ 此时假设你已经安装好了 DataGrip ,安装请参考该文章:
Macbook m1环境配置终极版_半吊子Kyle的博客-CSDN博客
Hive 的安装方式
Hive
的安装一共有三种方式 :内嵌模式、本地模式、远程模式,本博客的安装方式使用的是远程模式
① 内嵌模式
使用的是内嵌的 Derby
数据库来存储元数据,也不需要额外起 Metastore
服务。数据库和 Metastore
服务都嵌入在主 Hive Server
进程中。这个是默认的,配置简单,但是一次只能一个客户端连接,适用于用来实验,不适用于生产环境
缺点:不同路径启动 hive
,每一个 hive
拥有一套自己的元数据,无法共享
# 安装步骤
# 1.解压 hive 安装包
# 2.启动 hive
bin/hive
② 本地模式
本地模式采用外部数据库来存储元数据,目前支持的数据库有:MySQL、Postgres、Oracle、MS SQL Server.在这里我们使用MySQL
本地模式不需要单独起 metastore
服务,用的是跟 hive
在同一个进程里的 metastore
服务,也就是说当你启动一个 hive
服务,里面默认会帮我们启动一个 metastore
服务
hive
根据 hive.metastore.uris
参数值来判断,如果为空,则为本地模式
缺点:每启动一次 hive
服务,都内置启动了一个 metastore
③ 远程模式
该模式下需要单独起 metastore
服务,然后每个客户端都在配置文件里配置连接到该 metastore
服务
远程模式的 metastore
服务和 hive
运行在不同的进程里
在生产环境中,建议用远程模式来配置 Hive Metastore
Hive 远程模式安装
注意:我们当前已经有了一个 hadoop 集群,集群中有 3 个节点,我们只需要在其中的某个节点安装 Hive 即可
① 解压 Hive 安装包并重命名
# 进入自定义的安装目录,上传安装包
cd /opt/server
# 解压安装包
tar -zxvf apache-hive-2.1.0-bin.tar.gz
# 重命名安装目录
mv apache-hive-2.1.0-bin hive-2.1.0
② 修改 hive-env.sh
# 进入配置文件目录
cd /opt/server/hive-2.1.0/conf
# 修改 hive 的配置文件 : hive-env.sh
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
# 增加修改内容:指定 hadoop 安装目录 和 hive 的配置文件目录
HADOOP_HOME=/opt/server/hadoop-2.7.5
export HIVE_CONF_DIR=/opt/server/hive-2.1.0/conf
③ 修改 hive-site.xml
# 进入配置文件目录
cd /opt/server/hive-2.1.0/conf
# 编辑 hive-site.xml
vim hive-site.xml
# 增加以下内容,并修改
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 将此处的用户名修改为你自定义的 mysql 用户名 -->