为什么 Hive Metastore 主机无法加载 mysql 连接器?

问题描述

HDP-3.1.5.0 / Centos 7

我在 metastore 主机上配置了连接器(我也在 Ambari 管理器主机上做过)

# ambari-server setup --jdbc-db=MysqL --jdbc-driver=/lib/mysql-connector-java-8.0.23-1.el7.noarch.rpm
Using python  /usr/bin/python
Setup ambari-server
copying /lib/mysql-connector-java-8.0.23-1.el7.noarch.rpm to /var/lib/ambari-server/resources/mysql-connector-java-8.0.23-1.el7.noarch.rpm
Creating symlink /var/lib/ambari-server/resources/mysql-connector-java-8.0.23-1.el7.noarch.rpm to /var/lib/ambari-server/resources/mysql-connector-java.jar
If you are updating existing jdbc driver jar for MysqL with mysql-connector-java-8.0.23-1.el7.noarch.rpm. Please remove the old driver jar,from all hosts. Restarting services that need the driver,will automatically copy the new jar to the hosts.
JDBC driver was successfully initialized.
Ambari Server 'setup' completed successfully.

但是,在尝试启动 metastore 时看到这个

Underlying cause: java.lang.classNotFoundException : com.MysqL.jdbc.Driver
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver

解决方法

您使用的是 RPM,而不是 JAR

来自 HDP 文档

--jdbc-driver
应该是JDBC驱动JAR文件

的路径

您需要使用 yum 来安装 RPM,它应该将 JAR 解压缩到磁盘上的某个位置,然后您可以将其符号链接到 /usr/lib/mysql-connector.jar,例如,它位于指定位置的位置>