Sqoop1.4.7 java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils解决方案

使用sqoop 为RDBMS数据导入到HDFS上命令运行出错

错误: 读取/root/software/sqoop/lib/commons-lang3-3.4.jar时出错; error in opening zip file
错误: 读取/root/software/sqoop/lib/commons-lang3-3.4.jar时出错; cannot read zip file
注: /tmp/sqoop-root/compile/7d875e9aa66374bc31bec957613f0545/staff.java使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
21/01/03 15:17:01 INFO orm.CompilationManager: Writing jar file: /tmp/sqoop-root/compile/7d875e9aa66374bc31bec957613f0545/staff.jar
Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
at org.apache.sqoop.orm.CompilationManager.includeFileInJar(CompilationManager.java:331)
at org.apache.sqoop.orm.CompilationManager.addClassFilesFromDir(CompilationManager.java:309)
at org.apache.sqoop.orm.CompilationManager.jar(CompilationManager.java:378)
at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:108)
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:501)
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:628)
at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
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.lang3.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:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
… 12 more

在这里插入图片描述
原因:

Sqoop1.4.7默认只加载了commons-lang3-3.4.jar的jar包,里面的StringUtils类的package为:org/apache/commons/lang3/StringUtils,所以直接使用sqoop命令时报上述错误。
解决:

将旧版的jar包下载并导入到sqoop目录下的lib目录下即可
下载地址:
http://mirrors.tuna.tsinghua.edu.cn/apache//commons/lang/binaries/commons-lang-2.6-bin.zip

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值