title: 搭建分布式Hive集群
date: 2024-11-29 23:39:00
categories:
- 服务器
tags:
- Hive
- 大数据
Master |
---|
主节点(Mysql+Hive) |
192.168.66.6 |
Master | Slave1 |
---|---|
主节点(Hive) | 数据存储节点(Mysql) |
192.168.66.6 | 192.168.66.7 |
若使用方案一,则在master节点上进行”准备工作“
- 若使用方案二,则在slave1节点上进行“准备工作”
# 查看cent7自带的mariadb包
rpm -qa | grep mariadb
# 这条是centos7自带的数据库安装包 mariadb-libs-5.5.68-1.el7.x86_64
# 删除自带的数据库安装包
rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
# 使用wget下载Mysql5.7.x版本的release文件(二选一)
wget -P /tmp/ -c 'https://mirrors.ustc.edu.cn/mysql-repo/mysql57-community-release-el7.rpm'
# 使用curl下载Mysql5.7.x版本的release文件(二选一)
curl -C - 'https://mirrors.ustc.edu.cn/mysql-repo/mysql57-community-release-el7.rpm' -O /tmp/
# 导入release的GPG秘钥
rpm --import https://mirrors.ustc.edu.cn/mysql-repo/RPM-GPG-KEY-mysql
# 安装Mysql的release包
yum install -y /tmp/mysql57-community-release-el7.rpm
# 下载mysql-community-server
wget -P /tmp/ -c 'https://mirror.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/mysql-community-server-5.7.44-1.el7.x86_64.rpm'
# 下载mysql-community-client
wget -P /tmp/ -c 'https://mirror.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/mysql-community-client-5.7.44-1.el7.x86_64.rpm'
# 下载mysql-community-common
wget -P /tmp/ -c 'https://mirror.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/mysql-community-common-5.7.44-1.el7.x86_64.rpm'
# 下载mysql-community-libs
wget -P /tmp/ -c 'https://mirror.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/mysql-community-libs-5.7.44-1.el7.x86_64.rpm'
# 安装Mysql-server
yum install -y /tmp/mysql-community*
# 导入GPG公钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 备份原Mysql的yum源
cd /etc/yum.repos.d/
mv mysql-community.repo mysql-community.repo.bak
mv mysql-community-source.repo mysql-community-source.repo.bak
# 添加国内Mysql的yum源
cat >> mysql-community.repo << "EOF"
[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=https://mirror.iscas.ac.cn/mysql/yum/mysql-connectors-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
[mysql-tools-community]
name=MySQL Tools Community
baseurl=https://mirror.iscas.ac.cn/mysql/yum/mysql-tools-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
[mysql-5.7-community]
name=MySQL 5.7 Community Server
baseurl=https://mirror.iscas.ac.cn/mysql/yum/mysql-5.7-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
EOF
# 清除yum的旧缓存,并更新的yum源的缓存
yum clean all && yum makecache
# 安装Mysql-server
yum install -y mysql-server
# 配置Mysql开机自启
systemctl enable mysqld
# 启动Mysql
systemctl start mysqld
# 查看Mysql状态
systemctl status mysqld
# 查看安装后随机生成的Mysql密码
grep 'A temporary password' /var/log/mysqld.log
# 登录数据库
mysql -uroot -p'你自己查到的密码'
# 重置默认的随机密码(不进行无法操作数据库)
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
# 退出数据库
exit
# 必须要先退出服务器,使用新的密码进入数据库才能操作
mysql -uroot -p'新密码'
# 创建名为Hiv的数据库
CREATE DATABASE hive;
# 创建名为hive的用户,并设置密码
CREATE USER 'hive'@'%' IDENTIFIED BY 'hive用户的密码';
# 授权hive用户对Hive数据库的所有权限
GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%' WITH GRANT OPTION;
GRANT ALL on hive.* to 'hive'@'%' identified by 'hive用户密码' with grant option;
# 刷新权限
FLUSH PRIVILEGES;
exit
在master主节点上执行
# 使用wget命令下载Hive文件(二选一)
wget -P /tmp/ -c 'https://repo.huaweicloud.com/artifactory/apache-local/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz'
# 使用curl命令下载Hive文件(二选一)
curl -C - 'https://repo.huaweicloud.com/artifactory/apache-local/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz' -O /tmp/
# 解压文件到指定目录
tar -zxvf /tmp/apache-hive-3.1.2-bin.tar.gz -C /opt/module/
#重命名文件夹
mv /opt/module/apache-hive-3.1.2-bin/ /opt/module/hive
# 备份hive中原guava的jar包
mv /opt/module/hive/lib/guava-19.0.jar /opt/module/hive/lib/guava-19.0.jar.bak
# 使用haddoop中guava-27版本的jar包覆盖hive中的jar包
cp $HADOOP_HOME/share/hadoop/common/lib/guava-27.0-jre.jar /opt/module/hive/lib/
cat >> ~/.bashrc << "EOF"
# ------------------- Hive 配置--------------------
# 设置Hive环境变量,指向Hive安装目录
export HIVE_HOME=/opt/module/hive
# 将HIVE的bin目录添加到PATH环境变量
export PATH=$PATH:$HIVE_HOME/bin
# -------------------------------------------------
EOF
-----------------------------------------------------------
说明
举例 export PATH=$HIVE_HOME/bin:$PATH
英文冒号代表分隔
这段代码表示
1. 当你输入一个命令时,shell会首先在"HIVE_HOME"这个变量的"bin"子目录中查找,
2. 最后,若找不到,则在"PATH"的指定目录中查找
-------------------------------------------------------------
# 进入hive配置目录
cd /opt/module/hive/conf
# 复制hive-env.sh模板
cp hive-env.sh.template hive-env.sh
根据自己的配置信息,或者查看~/.bashrc,修改下面各项的内容,随后复制粘贴即可
# 配置hive.env.sh文件
cat >> hive-env.sh << EOF
export HADOOP_HOME=/opt/module/hadoop-3.1.4
export HIVE_CONF_DIR=/opt/module/hive/conf
export HIVE_AUX_JARS_PATH=/opt/module/hive/lib
EOF
如果选择方案一部署,则数据库信息填写master主机的信息,hive服务器填写master主机
- 如果选择方案二部署,则数据库信息填写slave1主机的信息填写,hive服务器填写master主机
cat >> hive-site.xml << EOF
javax.jdo.option.ConnectionURL
jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8
javax.jdo.option.ConnectionDriverName
com.mysql.cj.jdbc.Driver
javax.jdo.option.ConnectionUserName
hive
javax.jdo.option.ConnectionPassword
“你设置的hive用户密码”
hive.server2.thrift.bind.host
master
hive.metastore.uris
thrift://master:9083
hive.metastore.event.db.notification.api.auth
false
hive.metastore.schema.verification
false
EOF
网上找不到5.5、5.6、5.7版本的驱动,官网提供了解决方法:
Connector/J 8.0 provides compatibility with all the functionality of MySQL 5.5, 5.6, 5.7, and 8.0
,翻译过来就是说——8.0版本的驱动兼容这些版本,使用8.0版本的驱动就可以了
mysql-connector-java驱动目录1
mysql-connector-java驱动目录2
mysql-Connector-J安装包下载_开源镜像站-阿里云
# 根据你自己的mysql版本,在目录中查找对应版本的驱动,并放到hive主目录下的lib下即可
cp mysql-connector-java-8.0.26.jar /opt/module/hive/lib/
# 在master主节点上执行
source ~/.bashrc
# 初始化Hive元数据到Mysql
schematool -initSchema -dbType mysql
# 创建日志目录
mkdir $HIVE_HOME/logs
# 启动Hive服务
cd $HIVE_HOME/logs && hive --service metastore
# 进入Mysql数据库
myslq -uroot -p'新密码'
# 改变使用的数据库
use hive;
# 查看数据库中的表
show tables;
# 若里面有数据,则部署成功
nohup hive --service metastore > $HIVE_HOME/logs/nohup.out 2>&1 &
Hive3.1.2版本完全分布式安装部署保姆级教程_hive 3.1.2 部署-CSDN博客
Hive3.1.2搭建文档包含详细步骤及相关截图以及常见问题解决 - bjynjj - 博客园
从零开始搭建分布式大数据环境(Hadoop+Spark+Hive)
【超详细】CentOS 7安装MySQL 5.7【安装及密码配置、字符集配置、远程连接配置】_mysql contos 密码配置文件-CSDN博客
Linux安装软件包的三种方法,rpm包介绍,rpm工具用法,yum工具用法,yum搭建本地仓库-腾讯云开发者社区-腾讯云
mysql | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
MySQL - USTC Mirror Help
【超详细】CentOS 7安装MySQL 5.7【安装及密码配置、字符集配置、远程连接配置】_mysql contos 密码配置文件-CSDN博客
通过国内mysql镜像站安装Mysql8.0版本服务器——解决方案_mysql国内镜像-CSDN博客
Maven中找不到mysql-connector-java-5.7.24.jar的依赖_mysql5.7.24对应的jar包版本-CSDN博客
JDBC连接数据库出现Loading class com.mysql.jdbc.Driver'. This is deprecated.问题的相关解决方法_this is deprecated. the new driver class is
com.m-CSDN博客