最近在使用Hive連接MySQL的過程中,遇到了一個(gè)初始化失敗的問題。經(jīng)過一番排查,發(fā)現(xiàn)問題出現(xiàn)在連接MySQL的命令上。
hive>create table test(id int, name string)
>row format delimited fields terminated by '\t'
>stored as textfile;
hive>create table test_mysql as select * from test;
執(zhí)行第二個(gè)命令時(shí),會(huì)提示初始化失敗:
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
這個(gè)問題的原因是沒有正確配置MySQL JDBC驅(qū)動(dòng),Hive無法正確連接到MySQL數(shù)據(jù)源。
解決辦法是在啟動(dòng)Hive的時(shí)候,指定正確的MySQL JDBC驅(qū)動(dòng):
hive --auxpath /path/to/mysql-connector-java.jar
在執(zhí)行完這個(gè)命令后,就可以順利地使用Hive連接MySQL了。