Sqoop执行报错:java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils
解决Sqoop eval时找不到org.apache.commons.lang.StringUtils的问题
以下是几个排查和解决方向:
确认jar包放置目录正确性
确保org.apache.commons.lang-2.6.jar放在Sqoop的核心lib目录(即$SQOOP_HOME/lib,替换为你的Sqoop实际安装路径),不要误放到项目自定义lib或其他子目录中。手动指定类路径执行命令
如果自动加载lib目录jar不生效,执行sqoop eval时可通过--libjars参数显式指定该jar路径,示例命令:sqoop eval --libjars /your/path/org.apache.commons.lang-2.6.jar --connect jdbc:mysql://host:port/dbname --username username --password password --query "SELECT * FROM your_table"检查jar包完整性
用解压工具打开org.apache.commons.lang-2.6.jar,确认是否存在org/apache/commons/lang/StringUtils.class文件。若文件缺失,重新下载完整的jar包替换。排查依赖冲突
检查Sqoop lib目录下是否存在commons-lang3-*.jar,这类jar可能会干扰类加载优先级。如果存在,暂时移走该jar后重新测试命令。验证环境变量配置
检查SQOOP_CLASSPATH环境变量是否包含Sqoop lib目录下的所有jar,或者直接将commons-lang jar的路径添加到SQOOP_CLASSPATH中,重启终端后再执行命令。
内容的提问来源于stack exchange,提问作者Salva
相关产品推荐
相关产品推荐

