最近在使用hive客戶端連接MySQL的時(shí)候,發(fā)現(xiàn)無法連接,出現(xiàn)了一些錯(cuò)誤提示。經(jīng)過排查和解決,分享如下。
ERROR: Error while compiling statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:javax.jdo.JDOFatalInternalException: The connection factory org.datanucleus.store.rdbms.ConnectionFactoryImpl was not found. Please help your enhancer to find it. )
首先需要確認(rèn),是否hive的配置文件中正確添加了MySQL的驅(qū)動(dòng)。如果未添加,請(qǐng)?jiān)趆ive-site.xml中添加以下內(nèi)容:
javax.jdo.option.ConnectionURL jdbc:mysql://{mysql_server_ip}:{mysql_port}/{database_name}?createDatabaseIfNotExist=true javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver javax.jdo.option.ConnectionUserName {mysql_username} javax.jdo.option.ConnectionPassword {mysql_password}
如果仍然無法連接,可以嘗試以下解決方法:
- 確認(rèn)MySQL服務(wù)器是否正常運(yùn)行
- 檢查MySQL服務(wù)器的防火墻設(shè)置是否允許hive客戶端訪問
- 檢查MySQL服務(wù)器配置是否啟用了遠(yuǎn)程訪問權(quán)限
- 嘗試在hive客戶端中使用telnet命令,檢查MySQL服務(wù)器是否響應(yīng)端口
總結(jié):如果hive客戶端無法連接MySQL,要先確保hive的配置文件中正確添加了MySQL的驅(qū)動(dòng),并檢查MySQL服務(wù)器和hive客戶端的網(wǎng)絡(luò)配置和權(quán)限。