sqoop多作业调用

wd2eg0qa  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(326)

我正在创建一个基于sqoop的导入工具,我的shell脚本如下所示:

while <cond> ; do
sqoop import <parameters> &
done

第一次调用可以正常工作,但其余调用会出现以下错误:
原因:java.sql.sqlexception:无法转换为内部表示
当我一个接一个地手动启动每个迭代时,它们工作得很好,但不像上面提到的那样。
我调查后发现,第一个sqoop任务是创建文件 QueryResult.java 以及 QueryResult.jar ,则下一个作业使用相同的 jar 未反映正确类型Map的文件。
有人能证实我的想法吗?或者我错过了什么?有没有更简单的方法来摆脱它,或者我必须创建一个单独的 --bindir 每次调用?

gojuced7

gojuced71#

jar文件的名称由类名确定,类名由下面的参数进一步确定-

--class-name=SCHEMA_TBL_NAME

您应该在sqoop命令中包含这个参数,并为不同的导入传递不同的值。
“.”不应在此parm值中使用,因为它将创建子目录,因为“.”表示java中的子包。

相关问题