Sqoop 多作业调用
Sqoop multiple jobs invokation
我正在创建一个基于 Sqoop 的导入工具,我的 shell 脚本如下所示:
while <cond> ; do
sqoop import <parameters> &
done
第一次调用工作正常,但其余部分出现以下错误:
Caused by: java.sql.SQLException: Fail to convert to internal
representation
当我手动启动每个迭代时,它们工作正常,但不像上面提到的那样。
我调查后发现,第一个 sqoop 作业创建文件 QueryResult.java
和 QueryResult.jar
,然后下一个作业使用相同的 jar
文件,但没有反映正确的类型为他们作图。
谁能证实我的想法或者我错过了什么?有没有更简单的选择来摆脱它,或者我必须为每个调用创建单独的 --bindir
?
jar 文件的名称由 class 名称确定,该名称由以下参数进一步确定 -
--class-name=SCHEMA_TBL_NAME
您应该在 Sqoop 命令中包含此参数,并为不同的导入传递不同的值。
“。”不应在此参数值中使用,因为这将创建一个子目录,因为“。”表示java.
中的子包
我正在创建一个基于 Sqoop 的导入工具,我的 shell 脚本如下所示:
while <cond> ; do
sqoop import <parameters> &
done
第一次调用工作正常,但其余部分出现以下错误:
Caused by: java.sql.SQLException: Fail to convert to internal representation
当我手动启动每个迭代时,它们工作正常,但不像上面提到的那样。
我调查后发现,第一个 sqoop 作业创建文件 QueryResult.java
和 QueryResult.jar
,然后下一个作业使用相同的 jar
文件,但没有反映正确的类型为他们作图。
谁能证实我的想法或者我错过了什么?有没有更简单的选择来摆脱它,或者我必须为每个调用创建单独的 --bindir
?
jar 文件的名称由 class 名称确定,该名称由以下参数进一步确定 -
--class-name=SCHEMA_TBL_NAME
您应该在 Sqoop 命令中包含此参数,并为不同的导入传递不同的值。
“。”不应在此参数值中使用,因为这将创建一个子目录,因为“。”表示java.
中的子包