Sqoop 連接mysql 錯誤 java.lang.NoClassDefFoundError


1.首先說一下前提

  hadoop 已經正常啟動,並且mysql驅動包已經導入好:(Hadoop 3.2.0 ,mysql 8.0, mysql 驅動8.0,Sqoop 1.4.7)

    

2.錯誤信息

    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils

    如圖所示:

    

    具體信息:

      

 1 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils
 2     at org.apache.sqoop.manager.MySQLManager.initOptionDefaults(MySQLManager.java:73)
 3     at org.apache.sqoop.manager.SqlManager.<init>(SqlManager.java:89)
 4     at com.cloudera.sqoop.manager.SqlManager.<init>(SqlManager.java:33)
 5     at org.apache.sqoop.manager.GenericJdbcManager.<init>(GenericJdbcManager.java:51)
 6     at com.cloudera.sqoop.manager.GenericJdbcManager.<init>(GenericJdbcManager.java:30)
 7     at org.apache.sqoop.manager.CatalogQueryManager.<init>(CatalogQueryManager.java:46)
 8     at com.cloudera.sqoop.manager.CatalogQueryManager.<init>(CatalogQueryManager.java:31)
 9     at org.apache.sqoop.manager.InformationSchemaManager.<init>(InformationSchemaManager.java:38)
10     at com.cloudera.sqoop.manager.InformationSchemaManager.<init>(InformationSchemaManager.java:31)
11     at org.apache.sqoop.manager.MySQLManager.<init>(MySQLManager.java:65)
12     at org.apache.sqoop.manager.DefaultManagerFactory.accept(DefaultManagerFactory.java:67)
13     at org.apache.sqoop.ConnFactory.getManager(ConnFactory.java:184)
14     at org.apache.sqoop.tool.BaseSqoopTool.init(BaseSqoopTool.java:272)
15     at org.apache.sqoop.tool.ListDatabasesTool.run(ListDatabasesTool.java:44)
16     at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
17     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
18     at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
19     at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)
20     at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)
21     at org.apache.sqoop.Sqoop.main(Sqoop.java:252)
22 Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils
23     at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
24     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
25     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
26     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
27     ... 20 more

3.問題原因

    原因在異常中已經很明顯了:沒有找到類 org.apache.commons.lang.StringUtils  也就是說Sqoop中沒有這個類或者包含這個類的jar包。

4.解決辦法

    解決辦法就是將這個類所在的jar包添加到Sqoop中,這個類所在的jar包是  commons-lang

    第一步  下載commons-lang:  下載地址: 點擊下載  注意:這里面有兩個版本  2 和 3  請優先使用 2 因為Sqoop版本大部分是支持2 的  (如果不行 再嘗試3)

    第二步 把下載下來的文件解壓 :里面會得到好幾個jar文件 我們需要的是  commons-lang  如下圖:

    

    第三步   把該jar包放到Sqoop 下的lib文件夾下面即可  如圖:(我是先試的3版本 發現不行 才試的2 ,但是我沒有刪除3的jar包)

    

    第四步  啟動:結果

    

 

    大功告成!

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM