当前位置: 首页 > news >正文

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;"

http://www.lryc.cn/news/155458.html

相关文章:

  • Redis面试题(笔记)
  • iPhone 15 Pro展示设计:7项全新变化呈现
  • 【六袆 - Windows】PL/SQL instantclient安装包下载;PL/SQL双击登录配置
  • Springboot+mybatis-plus+dynamic-datasource 切换数据源失败问题总结
  • QuantLib学习笔记——InterestRate的应用
  • 记录--解决前端内存泄漏:问题概览与实用解决方案
  • IP初学习
  • live5555 testProgs目录
  • yolov5模型s,l,m,x的区别
  • Springboot 实践(13)spring boot 整合RabbitMq
  • YoloV8改进策略:轻量级Slim Neck打造极致的YoloV8
  • 使用java代码给Excel加水印,代码全,进阶版
  • day37:网编day4,多点通信和并发服务器
  • STM32 硬件IIC 控制OLED I2C卡死问题
  • Redis图文指南
  • C++17 std::string_view介绍与使用
  • 写得了代码,焊得了板!嵌入式开发工程师必修之代码管理方案(下)
  • Matlab论文插图绘制模板第110期—水平双向柱状图
  • 【广州华锐互动】VR全景工厂虚拟导览,虚拟现实技术提升企业数字化信息管理水平
  • idea 创建mybatis xml文件时找不到
  • Python钢筋混凝土结构计算.pdf-混凝土构件计算
  • mysql5.7-基于docker-compose搭建主从同步
  • 【USRP】调制解调系列5:16QAM、32QAM、64QAM、256QAM、1024QAM、基于labview的实现
  • Odoo|5分钟创建自定义的业务系统唯一序列号
  • mysql索引为什么提高查询速度(底层原理)
  • 算法通关村——位运算在查找重复元素中的妙用
  • 使用环境中的视觉地标和扩展卡尔曼滤波器定位移动机器人研究(Matlab代码实现)
  • 【python基础知识】5.for循环和while循环
  • STM32CUBEMX_创建时间片轮询架构的软件框架
  • vue 插槽Slots