Sqoop任务传递libjars失败求助:无法识别libjars参数
解决Sqoop Job中
-libjars参数报错的问题 你碰到的这个错误核心原因是**-libjars参数的位置放错了**。在创建Sqoop Job时,-libjars属于Sqoop Job命令本身的参数,而非后续import子命令的参数,必须把它放在--分隔符的前面才能被正确识别。
修正后的完整Sqoop命令
sqoop job --create myjob -libjars /var/lib/sqoop/db2jcc4.jar,/var/lib/sqoop/db2jcc.jar -- import -Dhadoop.security.credential.provider.path=jceks://hdfs/user/xyz/db2/db2_password.jceks --driver com.ibm.db2.jcc.DB2Driver --connect jdbc:db2://server:3714/XYX --username user --password-alias db2.password.alias --table db.table_name --fields-terminated-by '\001' --null-string '\N' --delete-target-dir --target-dir /user/jainm2/test_data1 -split-by "col_name" -m 3 --incremental append --last-value "2005-02-14 16:23:25"
额外说明
- 原命令中把
-libjars放在--之后的import参数段,会被Sqoop判定为import子命令的未知参数,从而抛出"Unrecognized argument: libjars"错误。调整位置后,Sqoop Job会正确加载指定的Jar包并传递给后续的导入任务。 - 注意到你的命令里重复写了
--delete-target-dir,可以移除其中一个,避免冗余配置。
内容的提问来源于stack exchange,提问作者user1321939
相关产品推荐
相关产品推荐

