【问题标题】:Why is Hive metastore host failing to load mysql connector?为什么 Hive Metastore 主机无法加载 mysql 连接器?
【发布时间】:2021-03-31 14:14:55
【问题描述】:

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.

但是,在尝试启动元存储时看到这个

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

【问题讨论】:

  • 您的 Metastore 服务器的类路径中没有 mysql jar
  • 我将 rpm 放在 $HIVE_HOME/lib 下,我认为这会导致它在类路径中可用。我显然错了。
  • Java 不从 RPM 读取类,只从 JAR 或 .class 文件中读取

标签: mysql-connector ambari hdp


【解决方案1】:

您使用的是 RPM,而不是 JAR

来自 HDP 文档

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

的路径

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-22
    • 2022-01-25
    • 2022-09-28
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多