我正在尝试在 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
. 我也包含/usr/lib/hive/lib
在 中$CLASSPATH
,其中有mysql-connector-java-5.1.25-bin.jar
.
在我的 Hive 和 Impalaconf
目录中,我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 是否缺少任何步骤?