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

- "1.0"?>
- "text/xsl" href="configuration.xsl"?>
- <configuration>
-
- <property>
- <name>javax.jdo.option.ConnectionURLname>
- <value> jdbc:mysql://server:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8value>
- property>
- <property>
- <name>javax.jdo.option.ConnectionDriverNamename>
- <value>com.mysql.jdbc.Drivervalue>
- property>
- <property>
- <name>javax.jdo.option.ConnectionUserNamename>
- <value>rootvalue>
- property>
- <property>
- <name>javax.jdo.option.ConnectionPasswordname>
- <value>sql2023value>
- property>
- configuration>

- # 进入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;"。
