解决启动hive时连接mysql的SSL认证问题以及元数据管理配置

该博客介绍了在遇到MySQL要求默认使用SSL连接但应用未设置的情况时,如何解决报错。解决方案是通过在javax.jdo.option.ConnectionURL中明确设置`useSSL=false`来禁用SSL。此外,还详细说明了如何将Hive的元数据存储从默认的Derby文本数据库迁移到更稳定的MySQL,包括在`hive-site.xml`中添加相关配置,如数据库URL、驱动名、用户名和密码。并提示从Hive 2.1版开始需要执行初始化元数据的命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错:

According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

解决办法:
将javax.jdo.option.ConnectionURL配置为如下:

<property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://fh-node1:3306/hive?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false</value>
</property>

元数据管理

  • 默认的存储位置:Hive自带的文本型数据库:derby
    • 问题
      • 文本数据库数据易丢失
      • 文本数据库不能同时启动多个实例
  • 生产环境中:配置元数据存储在MySQL中【利用远程Mysql来实现存储】
    • 修改Hive配置文件:hive-site.xml
      • 将hive-site.xml文件放入hive的配置文件目录 下
      • 修改,添加如下配置选项
<!--配置将元数据存储在MySQL中-->
	<property>
		<name>javax.jdo.option.ConnectionURL</name>
		<value>jdbc:mysql://fh-node1:3306/hive?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false</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>123456</value>
	</property>
  • 2.1版本开始,要先执行初始化元数据的命令

3、测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值