CDH对接ADLS执行sqoop-import报错:无法找到或加载主类
解决Sqoop-import执行时"找不到主类"的问题
我来帮你搞定这个报错!你遇到的ERROR:Could not find or load main class sqoop-import,核心原因是命令执行的方式错了——Sqoop有自己的启动逻辑,不能直接把sqoop-import作为主类传给hadoop命令来运行。咱们一步步调整:
一、正确的命令格式
你应该用Sqoop自带的启动脚本,把import作为子命令来执行,同时通过--config参数指定你的ADLS配置目录。修正后的命令大概是这样:
sqoop --config /home/userTest/adl_conf import --connect "jdbc:sqlserver://xxxxx.yyyy.org:1433;username=xxxx;password=*****;database=xxxx" --table [你的表名] [其他必要参数]
注意区别:原命令里的sqoop-import是拆成了sqoop主命令 + import子命令,这才是Sqoop的标准调用方式。
二、额外的排查和优化点
- 先确认Sqoop在CDH环境里正常可用:执行
sqoop version,如果能返回版本信息,说明Sqoop的基础安装和环境变量没问题。 - 如果你的ADLS配置文件(比如
core-site.xml)已经放到了CDH默认的Hadoop配置目录(比如/etc/hadoop/conf),那可以省略--config参数,直接执行sqoop import ...即可。 - 要是遇到配置加载异常,也可以先临时指定Hadoop配置目录,再执行Sqoop命令:
export HADOOP_CONF_DIR=/home/userTest/adl_conf sqoop import --connect "jdbc:sqlserver://xxxxx.yyyy.org:1433;username=xxxx;password=*****;database=xxxx" --table [你的表名] [其他必要参数]
内容的提问来源于stack exchange,提问作者Deepesh Rehi
相关产品推荐
相关产品推荐

