添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
仗义的夕阳  ·  Axisfault ...·  5 月前    · 
幸福的芹菜  ·  docker alpine bashrc-掘金·  1 年前    · 
冷静的大熊猫  ·  【原创】PostgreSQL ...·  1 年前    · 
备案 控制台
学习
实践
活动
专区
工具
TVP
写文章
专栏首页 Java学习中 Sqoop 连接mysql 错误 java.lang.NoClassDefFoundError
2 0

海报分享

原创

Sqoop 连接mysql 错误 java.lang.NoClassDefFoundError

使用命令进行mysql数据库连接时出现错误。

错误信息

2022-02-12 00:33:08,978 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils
        at org.apache.sqoop.manager.MySQLManager.initOptionDefaults(MySQLManager.java:73)
        at org.apache.sqoop.manager.SqlManager.<init>(SqlManager.java:89)
        at com.cloudera.sqoop.manager.SqlManager.<init>(SqlManager.java:33)
        at org.apache.sqoop.manager.GenericJdbcManager.<init>(GenericJdbcManager.java:51)
        at com.cloudera.sqoop.manager.GenericJdbcManager.<init>(GenericJdbcManager.java:30)
        at org.apache.sqoop.manager.CatalogQueryManager.<init>(CatalogQueryManager.java:46)
        at com.cloudera.sqoop.manager.CatalogQueryManager.<init>(CatalogQueryManager.java:31)
        at org.apache.sqoop.manager.InformationSchemaManager.<init>(InformationSchemaManager.java:38)
        at com.cloudera.sqoop.manager.InformationSchemaManager.<init>(InformationSchemaManager.java:31)
        at org.apache.sqoop.manager.MySQLManager.<init>(MySQLManager.java:65)
        at org.apache.sqoop.manager.DefaultManagerFactory.accept(DefaultManagerFactory.java:67)
        at org.apache.sqoop.ConnFactory.getManager(ConnFactory.java:184)
        at org.apache.sqoop.tool.BaseSqoopTool.init(BaseSqoopTool.java:272)
        at org.apache.sqoop.tool.ListTablesTool.run(ListTablesTool.java:44)
        at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
        at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)
        at org.apache.sqoop.Sqoop.main(Sqoop.java:252)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 20 more

问题原因

原因在异常中已经很明显了:没有找到类 org.apache.commons.lang.StringUtils  也就是说Sqoop中没有这个类或者包含这个类的jar包。但是我查看lib目录下的jar包,是包含commons-lang3的。上网查到因为 Sqoop版本大部分是支持2 的。

解决办法

将Sqoop下的commons-lang3替换成commons-lang-2.6.jar。

1.下载commons-lang-2.6.jar,下载地址 https://mvnrepository.com/

maven中央仓库

2.将commons-lang-2.6.jar 上传到sqoop安装目录的lib目录下,同时删除原来的jar。

测试

sqoop list-databases \
--connect jdbc:mysql://master:3306/ \
--username root \
--password root

结果如下:

结果

参考连接 https://blog.51cto.com/u_15508216/5002034

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。