一、先安装MySQL数据库

Hive 高版本启动时,需要配置元数据库,如果采用其它数据库,请酌情替换对应步骤,这里采用MYSQL 作为元数据库:

1、安装前准备

  1. 卸载MariaDB
    安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB。
  2. 查看是否安装mariadb
    rpm -qa|grep mariadb
  3. 卸载
    `rpm -e --nodeps 文件名
  4. 检查是否删除干净
    rpm -qa|grep mariadb
  5. 查看是否安装libaio
    rpm -qa|grep libaio
    如果没有安装则执行:
    yum -y install libaio
  6. 查看是否安装numactl
    rpm -qa|grep numactl
    如果没有安装则执行
    yum -y install numactl

2、安装MySQL

2.1 下载MySQL

方法一:在官网下载安装包
image
根据自己的版本型号选择相应的版本

方法二:通过wget命令安装
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-el7-x86_64.tar

image
通过wget下载的安装包再root下面,通过命令让软件迁移到:/usr/local下面
mv mysql-8.0.30-el7-x86_64.tar /usr/local

3、解压配置

3.1 解压

进入安装包目录:cd /usr/local/
拆分tar包:tar -xvf mysql-8.0.30-el7-x86_64.tar
解压安装包:tar -zxvf mysql-8.0.30-el7-x86_64.tar.gz
重命名:mv mysql-8.0.30-el7-x86_64/ mysql
创建存储数据文件:mkdir mysql/data

3.2 初始化

进入MySQL的bin目录:cd /usr/local/mysql/bin/
初始化:
./mysqld --initialize --user=root --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

3.3配置参数文件

vi /etc/my.cnf

点击查看配置代码
[client]
port = 3306
socket = /usr/local/mysql/data/mysql.sock
default-character-set = utf8mb4

[mysql]  
default-character-set = utf8mb4

[mysqld]  
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect = 'SET NAMES utf8mb4'

port = 3306
socket = /usr/local/mysql/data/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
datadir = /usr/local/mysql/data
#lower_case_table_names=1
#如果要设置lower_case_table_names可以在初始化里面设置 ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --lower_case_table_names=1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

配置后修改 /etc/my.cnf 的权限为777:chmod 777 /etc/my.cnf

3.4 修改/usr/local/mysql/support-files/下的mysql.server文件

由于在使用mysql时使用的用户全都是root用户,而用root用户执行mysqld 跟mysqld_safe 不加--user=root参数 指定用户时会报错的。为了让mysqld_safe能过执行,需要对mysql.service文件进行一点点修改
image
在执行mysqld_safe 时,加入了 --user=root 参数

4、启动MySQL

/usr/local/mysql/support-files/mysql.server start

4.2 设置软连接,并重启MySQL

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
ln -s /usr/local/mysql/mysql.sock /var/mysql.sock
service mysql restart

4.3 登录并更改密码

登录:mysql -uroot -p,密码就是初始化时给出的初始密码

两种改密方式二选一:
1、alter user 'root'@'localhost' identified by '123456';
2、set password for root@localhost = '123456';

4.4 开放远程连接

只有开放远程连接之后,才能在本地使用数据库工具连接上
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges; //刷新权限

5、启动与关闭

启动:
service mysql start
systemctl start mysql
停止:
service mysql stop
systemctl stop mysql
重启:
service mysql restart
systemctl restart mysql
查看状态:
service mysql status
systemctl status mysql

5.1 设置开机自启动

将服务文件拷贝到 /etc/init.d下,并重命名为mysqld:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
赋予可执行权限:chmod +x /etc/init.d/mysqld
添加服务:chkconfig --add mysqld
显示服务列表:chkconfig --list
注:如果看到mysqld的服务,并且3,4,5都是on的话则成功,如果是off,则执行
chkconfig --level 345 mysqld on
重启系统:reboot
重启后查看mysql是否开机自启动:ps -ef|grep mysql

二、安装Hive-4.0.0

1、安装

1.1

将准备好的软件包发送到/opt/software 目录下,并解压到目录/opt/module
cd /opt/software
tar -zxvf apache-hive-4.0.0-bin.tar.gz -C/opt/module/

1.2

修改文件包名
cd /opt/module
mv apache-hive-4.0.0-bin/ hive-4.0.0

2、配置

2.1 配置环境变量

配置HIVE 环境变量,在文件末尾增加
vim /etc/profile

点击查看环境变量代码
#HIVE_HOME
export HIVE_HOME=/opt/module/hive-4.0.0
export PATH=${HIVE_HOME}/bin:$PATH

2.2 分发环境变量文件

分发配置好的/etc/profile 到其它节点
for i in {102..103}; do scp -r /etc/profile root@node${i}:/etc/;done
并在每个节点分别执行
source /etc/profile

2.3 配置hive-env.sh

进入到HIVE 配置文件目录,先根据模板生成一个配置文件hive-env.sh:
cd /opt/module/hive-4.0.0/conf/
cp hive-env.sh.template hive-env.sh
然后再配置HADOOP_HOME 和HIVE_CONF_DIR 到对应的目录:
vim hive-env.sh

点击查看环境变量代码
export HADOOP_HOME=/opt/module/hadoop-3.3.6
export HIVE_CONF_DIR=/opt/module/hive-4.0.0/conf

2.4 编辑hive-config.sh文件

cd /opt/module/hive-4.0.0/bin/
vi hive-config.sh

新增内容:

点击查看环境变量代码
export JAVA_HOME=/opt/module/jdk1.8.0_421
export HIVE_HOME=/opt/module/hive-4.0.0
export HADOOP_HOME=/opt/module/hadoop-3.3.6
export HIVE_CONF_DIR=/opt/module/hive-4.0.0/conf

2.5 配置元数据库

//登录MySQL
mysql -u root -p
//创建 metastore 数据库
CREATE DATABASE metastore

2.6 配置hive-site.sh

cd $HIVE_HOME/conf
vim hive-site.xml

点击查看环境变量代码
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- jdbc 连接的URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node101:3306/metastore?useSSL=false</value>
</property>
<!-- jdbc 连接的Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- jdbc 连接的username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- jdbc 连接的password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<!-- Hive 元数据存储版本的验证-->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!--元数据存储授权-->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!-- Hive 默认在HDFS 的工作目录-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<!-- 指定hiveserver2 连接的host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node101</value>
</property>
<!-- 指定hiveserver2 连接的端口号-->
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<name>hive.server2.enable.doAs</name>
<value>false</value>
</property>
</configuration>

2.7 初始化Hive 元数据库

schematool -initSchema -dbType mysql -verbose

2.8 分发配置好的Hive 到其它节点

for i in {102..103}; do scp -r /opt/module/hive-4.0.0 root@node${i}:/opt/module/;done

3、启动Hive

3.1 启动Hive

首先保证HADOOP 正常启动:
start-dfs.sh
start-yarn.sh
确保元数据库MYSQL 已正常启动,已启动则跳过:
systemctl start mysqld
HADOOP 启动成功后,再启动Hive:
启动元数据库服务:hive --service metastore
启动hiveserver2服务:hiveserver2
启动beeline客户端:hive
连接beeline:!connect jdbc:hive2://node101:10000
启动成功页面如下:image

3.2 错误解决

错误页面如下:
image
主要原因是:hadoop 引入了一个安全伪装机制,使得hadoop 不允许上层系统直接将实际用户传递到hadoop 层,而是将实际用户传递给一个超级代理,由此代理在hadoop 上执行操作,避免任意客户端随意操作hadoop;需要再hadoop 的配置文件core-site.xml添加如下内容:
cd $HADOOP_HOME/etc/hadoop
vim core-site.xml

点击查看代码
<!-- 表示设置hadoop 的代理用户-->
<property>
<!--表示代理用户的组所属-->
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<!--表示任意节点使用hadoop 集群的代理用户hadoop 都能访问hdfs 集群-->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>

保存后重新启动相关服务

4、 测试

输入:show databases
image

posted on 2025-01-14 19:55  小高叁肆  阅读(745)  评论(0)    收藏  举报