Impala 找不到 com.mysql.jdbc.Driver

Posted

技术标签:

【中文标题】Impala 找不到 com.mysql.jdbc.Driver【英文标题】:Impala cannot find com.mysql.jdbc.Driver 【发布时间】:2013-06-18 15:51:28 【问题描述】:

我正在尝试在 Red Hat 5 上以伪分布式模式使用 CDH4 设置 Cloudera Impala。我让 Hive 使用 JDBC 连接到 mysql 元存储,但在使用 JDBC 设置 Impala 时遇到问题。我一直按照此处的说明进行操作:http://www.cloudera.com/content/cloudera-content/cloudera-docs/Impala/latest/Installing-and-Using-Impala/ciiu_impala_jdbc.html

我已将 JAR 提取到一个目录中,并将该目录包含在 $CLASSPATH 中。我还在$CLASSPATH 中包含了/usr/lib/hive/lib,其中有mysql-connector-java-5.1.25-bin.jar

在我的 Hive 和 Impala conf 目录中,我有 hive-site.xml 包括以下属性:

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost/metastore</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hiveuser</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>password</value>
</property>

<property>
    <name>datanucleus.autoCreateSchema</name>
    <value>false</value>
</property>

<property>
    <name>datanucleus.fixedDatastore</name>
    <value>true</value>
</property>

但是当我运行sudo service impala-server restart时,服务器日志有这个错误:

ERROR common.MetaStoreClientPool: Error initializing Hive Meta Store client
javax.jdo.JDOFatalInternalException: Error creating transactional connection factory

它说的原因是这样的:

Caused by: org.datanucleus.store.rdbms.datasource.DatastoreDriverNotFoundException: The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH. Please check your CLASSPATH specification, and the name of the driver.
    at org.datanucleus.store.rdbms.datasource.dbcp.DBCPDataSourceFactory.makePooledDataSource(DBCPDataSourceFactory.java:80)
    at org.datanucleus.store.rdbms.ConnectionFactoryImpl.initDataSourceTx(ConnectionFactoryImpl.java:144)
    ... 57 more

我是否缺少使用 JDBC 配置 Impala 的任何步骤?

【问题讨论】:

你是如何将库添加到类路径的? /usr/lib/hive/lib/usr/lib/hive/lib/*.jar? /usr/lib/hive/lib/*.jar,但我都试过了。 嗯,这个主意不错。 【参考方案1】:

我通过将 mysql-connector-java-5.1.25-bin.jar 复制到 /var/lib/impala 来解决此问题 - 启动脚本告诉类路径出于某种原因在此处查找连接器 jar。

【讨论】:

以上是关于Impala 找不到 com.mysql.jdbc.Driver的主要内容,如果未能解决你的问题,请参考以下文章

尝试连接到 Mysql 数据库时找不到类 com.mysql.jdbc.Driver jdbc

找不到类 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

为啥我找不到 Class.forName("com.mysql.jdbc.Driver"); 的异常[复制]

在 Worklight 平台中找不到 com.mysql.jdbc.Driver 或项目错误

找不到 mysql.jdbc.Driver - MySQL、JBoss

部署后找不到 jdbc mysql 驱动程序