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。
# 查找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
此处用“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/”,如下图;
此处是在系统根目录安装,其他位置应该也可以。
# 安装依赖
yum -y install libaio
yum -y install libncurses*
yum -y install perl perl-devel
切换目录到“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
# 启动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
# 登录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');
# 其中 *.*代表对所有表进行授权;‘root’ 代表 root 用户;‘%’ 代表所有的外部 IP;‘sql2023’ 代表自己设置的用户密码。
grant all privileges on *.* to 'root' @'%' identified by 'sql2023';
# 刷新
flush privileges;
退出mysql命令:"exit"。
#mysql的启动和关闭 状态查看
systemctl stop mysqld
systemctl status mysqld
systemctl start mysqld
#建议设置为开机自启动服务
systemctl enable mysqld
#查看是否已经设置自启动成功
systemctl list-unit-files | grep mysqld
命令“tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /opt/server/”;
# 进入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
vim hive-site.xml
javax.jdo.option.ConnectionURL
jdbc:mysql://server:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
root
javax.jdo.option.ConnectionPassword
sql2023
# 进入bin目录
cd /opt/server/apache-hive-3.1.2-bin/bin
# 初始化元数据库命令
./schematool -dbType mysql -initSchema
#Hive
export HIVE_HOME=/opt/server/apache-hive-3.1.3-bin
export PATH=$PATH:${HIVE_HOME}/bin
刷新,使其生效;
source ./etc/profile
# 连接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;"。