centos7上hive3.1.3安装及配置

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;

Hive 允许将元数据存储于本地或远程的外部数据库中,这种设置可以支持 Hive 的多会话生产环
境,在本案例中采用 MySQL 作为 Hive 的元数据存储库。

(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&amp;useSSL=false&amp;useUnicode=true&amp;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;

YARN有MapReduce程序执行;

退出hive命令:"exit;"

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值