2015-05-29 141 views
0

我在Hadoop中編寫程序,它使用MySql從dfs中讀取數據。我在運行時收到此消息:Hadoop不加載jdbc驅動程序

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:264) 
    at ConnectDtb.<init>(ConnectDtb.java:14) 
    at WriteToDtb.<init>(WriteToDtb.java:14) 
    at WriteToDtb.main(WriteToDtb.java:61) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 

當我在沒有Hadoop的情況下運行它時,我沒有收到此錯誤。

我已經把mysql-connector.jar設置爲$Hadoop/lib,試圖用-libjars <mysql-connector path>來運行,但也失敗了。

+0

請檢查該http://stackoverflow.com/questions/2591505/java-lang-classnotfoundexception-com-mysql-jdbc-driver –

+0

改進的問題 – Jerome

回答

0

你可以嘗試複製

使用mysql-connector-java的5.1.25-bin.jar

的/ var/lib中/ Hadoop的

它適合我。由於某種原因,啓動腳本會告訴類路徑在這裏查找連接器jar。

+0

我嘗試,但它不能正常工作 – Copper

0

方法1.hadoop-env.sh加入這一行:

export HADOOP_LIB=$HADOOP/lib 
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_LIB/mysql-connector-java-x.x.xx.jar 

方法2/home/hadoop/.bashrc加入這一行:(這裏Hadoop的是我的Hadoop用戶名)

export HADOOP_LIB=$HADOOP/lib 
export CLASSPATH=$CLASSPATH:$HADOOP_LIB/mysql-connector-java-x.x.xx.jar 

注意:更改mysql-connector-java-x.x.xx.jar到您的MySQL連接器jar文件版本。

+0

我試試,但不要不行!傷心 – Copper