在kali linux中配置hive(mysql元数据库)


一、MySQL 配置

1. 清除原有 MariaDB
bash 复制代码
# 删除原有的mariadb数据库,要不然安装mysql会有冲突
sudo apt remove --purge mariadb-* --fix-missing
# 清除相关文件
sudo apt autoremove -y
# 手动清除
sudo rm -rf /var/lib/mysql/
sudo rm -rf /etc/mysql/
2. 下载并安装 MySQL
bash 复制代码
# 下载mysql安装包,由于kali linux不支持从apt中下载mysql
sudo wget https://repo.mysql.com//mysql-apt-config_0.8.33-1_all.deb

# 添加mysql下载索引
sudo dpkg -i mysql-apt-config_0.8.33-1_all.deb
# 执行命令后出现安装界面选择ubuntu noble
# 选择mysql-8.4-lts版本

# 更新apt软件包索引
sudo apt update

# 下载mysql
sudo apt install mysql-community-server --fix-missing
# 下载完会出现root密码输入界面
3. 启动服务并创建 Hive 用户
bash 复制代码
# 开机自启
sudo systemctl enable mysql

# 启动服务
sudo systemctl start mysql
sql 复制代码
-- 登录 MySQL
sudo mysql -u root -p

-- 创建数据库和用户
CREATE DATABASE hive_metastore;
CREATE USER 'hiveuser'@'localhost' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON hive_metastore.* TO 'hiveuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

二、Hive 配置

1. 下载解压 Hive
bash 复制代码
# 下载hive
sudo wget https://dlcdn.apache.org/hive/hive-4.0.1/apache-hive-4.0.1-bin.tar.gz
# 解压hive
sudo tar -xzvf apache-hive-4.0.1-bin.tar.gz
# 重命名hive
mv apache-hive-4.0.1-bin  hive-4.0.1                                  
2. 配置环境变量
bash 复制代码
# 编辑 ~/.bashrc
echo 'export HIVE_HOME=/soft/hive-4.0.1' >> ~/.zshrc
echo 'export PATH=$PATH:$HIVE_HOME/bin' >> ~/.zshrc
source ~/.zshrc
3. 配置 hive-site.xml和hive-env.sh
bash 复制代码
cd $HIVE_HOME/conf
cp hive-default.xml.template hive-site.xml

# 清空原内容并添加以下配置
cat > hive-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

  <!-- 连接元数据库的配置 -->
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive_metastore?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.cj.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hiveuser</value>
    <description>Username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123</value>
    <description>Password to use against metastore database</description>
  </property>

  <!-- Hive数据在HDFS上的存储路径 -->
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>Location of default database for the warehouse</description>
  </property>

  <!-- Hive临时目录配置 -->
  <property>
    <name>hive.exec.scratchdir</name>
    <value>/user/hive/tmp</value>
  </property>
</configuration>
EOF
bash 复制代码
cp hive-env.sh.template hive-env.sh 

echo 'export HADOOP_HOME=/soft/hadoop-3.4.1/ ' >> ./hive-env.sh 
echo 'export HIVE_CONF_DIR=/soft/hive-4.0.1/conf/' >> ./hive-env.sh 
4. 安装 MySQL JDBC 驱动
bash 复制代码
# 查看驱动安装包
sudo apt list | grep mysql
# 下载驱动
sudo apt install mysql-connector-j
# 将驱动包复制到$HIVE_HOME/lib下(/usr/share/java/)
# or使用updatedb→locate 文件名
# or使用sudo find / -name 文件名
cp /usr/share/java/mysql-connector-j-9.2.0.jar $HIVE_HOME/lib
5. 指定代理用户
bash 复制代码
# 进入hadoop的core-site.xml文件添加以下内容
# 目的是能安全正常连接beeline并使用
  <property>
    <name>hadoop.proxyuser.wgs.hosts</name>
    <value>*</value> <!-- HiveServer2 所在主机,* 表示所有 -->
  </property>
  <property>
    <name>hadoop.proxyuser.wgs.groups</name>
    <value>*</value> <!-- 允许代理的用户组,* 表示所有 -->
  </property>
  <property>
    <name>hadoop.proxyuser.wgs.users</name>
    <value>*</value> <!-- 允许代理的具体用户,* 表示所有(含 wgs) -->
  </property>

三、Hadoop 服务启动

bash 复制代码
# 启动 Hadoop 集群(需已安装 Hadoop)
start-dfs.sh
start-yarn.sh

# 创建目录为hive存放数据
hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/tmp

四、初始化与启动

bash 复制代码
# 初始化元数据库
schematool -dbType mysql -initSchema

# 启动 Hive 服务
hiveserver2

# 连接beeline
beeline -u jdbc:hive2://hadoop:10000 -n wgs

五、测试验证

sql 复制代码
-- 在 Hive CLI 中执行
SHOW DATABASES;
CREATE TABLE test(id INT);
INSERT INTO test VALUES(1);
SELECT * FROM test;

相关推荐
Tansmjs20 小时前
使用Python自动收发邮件
jvm·数据库·python
m0_5613596720 小时前
用Python监控系统日志并发送警报
jvm·数据库·python
Dxy123931021620 小时前
MySQL INSERT ... ON DUPLICATE KEY UPDATE 与非主键唯一字段
数据库·mysql
zhousenshan20 小时前
springboot事务管理几种方式
数据库
Yana.nice21 小时前
openssl将证书从p7b转换为crt格式
java·linux
布局呆星21 小时前
SQLite数据库的介绍与使用
数据库·python
AI逐月21 小时前
tmux 常用命令总结:从入门到稳定使用的一篇实战博客
linux·服务器·ssh·php
2401_8384725121 小时前
用Python和Twilio构建短信通知系统
jvm·数据库·python
石头wang21 小时前
oracle jdbc 依赖以及对dbeaver的性能影响,如何选择oracle驱动, oracle jdbc 驱动
数据库·oracle
weixin_4521595521 小时前
如何从Python初学者进阶为专家?
jvm·数据库·python