配置Hive元数据存储到MySQL


文章目录

配置Hive元数据存储到MySQL

背景介绍

在安装完Hive之后,需要将Hive的元数据写入到MySQL的metastore数据库。

如果说MySQL中缺乏了关于Hive的相关配置,Hive是无法正常启动和运行的。

如果说MySQL进行重装,则需要对Hive服务进行重新的配置。

配置步骤
1) 在MySQL中新建 Hive 元数据库
bash 复制代码
#登录MySQL
[atguigu@hadoop102 software]$ mysql -uroot -p123456

#创建Hive元数据库
mysql> create database metastore;
mysql> quit;
2) 将MySQL的JDBC驱动拷贝到Hive的lib目录下
bash 复制代码
cp /opt/download/mysql-connector-j-8.0.33.jar lib/
3) 更新guava包和hadoop一致
bash 复制代码
ls lib/|grep guava
# guava-19.0.jar
rm -f lib/guava-19.0.jar
find /opt/software/hadoop313/ -name guava*
#/opt/software/hadoop313/share/hadoop/common/lib/guava-27.0-jre.jar
#/opt/software/hadoop313/share/hadoop/hdfs/lib/guava-27.0-jre.jar
cp /opt/software/hadoop313/share/hadoop/hdfs/lib/guava-27.0-jre.jar lib/
4) 在$HIVE_HOME/conf目录下新建hive-site.xml文件
bash 复制代码
[atguigu@hadoop102 software]$ vim $HIVE_HOME/conf/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>mysql
        <value>jdbc:mysql://localhost:3306/hive312?createDatabaseIfNotExist=true</value>
	</property>
    
    <!-- jdbc连接的Driver-->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.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默认在HDFS的工作目录 -->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/hive312/warehouse</value>
    </property>
</configuration>
5) 初始化Hive元数据库(修改为采用MySQL存储元数据)

在初始化之前,需要先到MySQL数据库下查看数据库列表中是否存在hive312数据库,如果存在先删掉,否则会导致元数据库的创建过程失败。

bash 复制代码
schematool -dbType mysql -initSchema -verbose
6) 验证是否成功配置
bash 复制代码
#首先启动元数据服务
nohup hive --service metastore 1>/dev/null 2>&1 &

#1、方法一 hive客户端
hive
#2、方法二 基于metastore和hiveserver2的beeline
#启动hiveserver2服务
nohup hive --service hiveserver2 1>/dev/null 2>&1 &
beeline -u jdbc:hive2://single01:10000
相关推荐
苹果酱056714 分钟前
2020-06-23 暑期学习日更计划(机器学习入门之路(资源汇总)+概率论)
java·vue.js·spring boot·mysql·课程设计
lix的小鱼20 分钟前
spark和Hadoop之间的对比和联系
大数据·hadoop·spark
Lucky GGBond37 分钟前
MySQL 报错解析:SQLSyntaxErrorException caused by extra comma before FROM
数据库·mysql
Java水解1 小时前
Mysql之存储过程
后端·mysql
漫步向前1 小时前
mysql主备延迟
mysql
GarfieldFine2 小时前
MySQL索引使用一定有效吗?如何排查索引效果?
数据库·mysql
cypking2 小时前
mysql 安装
数据库·mysql·adb
TTBIGDATA3 小时前
如何将 Apache Hudi 接入 Ambari?完整部署与验证指南
大数据·hadoop·ambari·hudi·bigtop·湖仓·自定义组件集成
南客先生3 小时前
MySQL索引优化、SQL分析与运行原理 - Java架构师面试实战
mysql·mvc·锁机制·sql分析·事务隔离级别·索引优化
husterlichf3 小时前
MYSQL 常用字符串函数 和 时间函数详解
数据库·sql·mysql