1、安装背景;
hive是基于hadoop的数据仓库软件,部署运行在linux系统之上,安装之前必须保证hadoop环境运行正常,hive本身不是分布式软件,它的分布式主要是借助hadoop实现,存储是hdfs,计算是mapreduce。
需要同时安装apache-hive-3.1.3-bin.tar.gz和mysql-5.7.42-1.el7.x86_64.rpm-bundle.tar两个软件,因为hive的建表元数据需要保存到数据库中,共74张表,一般用mysql。
2、配置mysql;
(1)先卸载centos7自带的mariadb数据库, 因为mariadb5.5版本与hive3.x存在兼容性问题。
# 查找centos7中是否有自带的mariadb数据库
rpm -qa|grep mariadb
# mariadb-libs-5.5.64-1.el7.x86_64
#卸载
rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps
(2)上传mysql-5.7.42-1.el7.x86_64.rpm-bundle.tar并解压;
此处用“tar -zxvf mysql-5.7.42-1.el7.x86_64.rpm-bundle.tar -C /opt/server/mysql/”命令,会解压失败。
应该使用“tar xvf mysql-5.7.42-1.el7.x86_64.rpm-bundle.tar -C /opt/server/mysql/”,如下图;
(3)安装mysql5.7;
①安装必要的依赖包;
此处是在系统根目录安装,其他位置应该也可以。
# 安装依赖
yum -y install libaio
yum -y install libncurses*
yum -y install perl perl-devel
②安装mysql;
切换目录到“cd opt/server/mysql/”,执行下面四条命令;
# 安装mysql
rpm -ivh mysql-community-common-5.7.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.42-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.42-1.el7.x86_64.rpm
先安装net-tools依赖包;
yum -y install net-tools.x86_64
再安装mysql-community-server.xxxxx.rpm;
rpm -ivh mysql-community-server-5.7.42-1.el7.x86_64.rpm
(4)启动mysql;
# 启动mysql
systemctl start mysqld
#查看生成的临时root密码
cat /var/log/mysqld.log | grep password
2023-09-05T03:19:52.654819Z 1 [Note] A temporary password is generated for root@localhost: pRyujui?H9gD
(5)修改初始密码;
# 登录mysql
mysql -u root -p
Enter password: #输入在日志中生成的临时密码
# 更新root密码 设置为sql2023
set global validate_password_policy=0;
set global validate_password_length=1;
set password=password('sql2023');
(6)远程授权;
# 其中 *.*代表对所有表进行授权;‘root’ 代表 root 用户;‘%’ 代表所有的外部 IP;‘sql2023’ 代表自己设置的用户密码。
grant all privileges on *.* to 'root' @'%' identified by 'sql2023';
# 刷新
flush privileges;
退出mysql命令:"exit"。
(7)相关命令;
#mysql的启动和关闭 状态查看
systemctl stop mysqld
systemctl status mysqld
systemctl start mysqld
#建议设置为开机自启动服务
systemctl enable mysqld
#查看是否已经设置自启动成功
systemctl list-unit-files | grep mysqld
3、Hive安装和配置;
(1)上传hive安装包apache-hive-3.1.3-bin.tar.gz和mysql_jdbc驱动包mysql-connector-java-5.1.38.jar;
(2)解压hive安装包;
命令“tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /opt/server/”;
(3)添加mysql_jdbc驱动到hive安装包lib目录下;
(4)修改hive-env.sh,加入hadoop安装路径;
# 进入conf目录
[root@server apache-hive-3.1.3-bin]# cd ./conf
# 生成hive-env.sh文件
cp hive-env.sh.template hive-env.sh
#编辑hive-env.sh信息
vim hive-env.sh
# 加入hadoop路径
HADOOP_HOME=/opt/server/hadoop-3.3.1
(5)新建 hive-site.xml 文件,内容如下,主要是配置存放元数据的 MySQL 的地址、驱动、用户名和密码等信息;
vim hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 存储元数据mysql相关配置 /etc/hosts -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value> jdbc:mysql://server:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>sql2023</value>
</property>
</configuration>
(6)hive2j及以上版本,必须手动初始化元数据库;
# 进入bin目录
cd /opt/server/apache-hive-3.1.2-bin/bin
# 初始化元数据库命令
./schematool -dbType mysql -initSchema
(7)添加hive环境变量;
#Hive
export HIVE_HOME=/opt/server/apache-hive-3.1.3-bin
export PATH=$PATH:${HIVE_HOME}/bin
刷新,使其生效;
source ./etc/profile
(8)启动hive,测试功能;
# 连接hive
hive
# 创建数据库
create database test;
# 列出所有数据库
show databases;
# 切换数据库
use test;
# 建表
create table tb1(id int,name varchar(64));
# 插入一条数据
insert into table tb1 values(1,"wang");
# 查询表数据
select * from tb1;
退出hive命令:"exit;"。