我正在使用sqoop版本sqoop-1.4.6.bin__hadoop-0.23。
我正在导入Oracle数据,并且为此我创建了增量sqoop作业。
我正在使用以下查询创建sqoop作业:-
sqoop job --create JOB_NAME -- import --connect jdbc:oracle:thin:/system@HOST:PORT:SERVICE --username USERNAME --password-file /PWD_FILE.password --fields-terminated-by ',' --enclosed-by '"' --table USERNAME.TABLE_NAME --target-dir /TARGET_DIR -m 1 --incremental append --check-column DT_COLUMN --last-value '2019-01-01 00:00:00.000' --split-by PRIMARY_KEY --null-string "" --null-non-string ""
我创建了另外15个sqoop作业,以导入oracle表的增量数据。
我一次执行3个sqoop作业,这意味着三个sqoop作业将与一个mapper并行运行。
在最初的10到15天内,一切都很好,并且作业可以成功运行,但是之后,一些sqoop作业没有将最后一个值保存到其元数据中,并且每次都导入重复数据。
以下是日志:-
5月5日的日志-
19/05/05 01:37:10 INFO tool.ImportTool: Lower bound value:
TO_TIMESTAMP('2019-04-26 21:25:19.0', 'YYYY-MM-DD HH24:MI:SS.FF')
19/05/05 01:37:10 INFO tool.ImportTool: Upper bound value:
TO_TIMESTAMP('2019-05-04 21:25:25.0', 'YYYY-MM-DD HH24:MI:SS.FF')
5月6日的日志
19/05/06 01:37:34 INFO tool.ImportTool: Lower bound value:
TO_TIMESTAMP('2019-04-26 21:25:19.0', 'YYYY-MM-DD HH24:MI:SS.FF')
19/05/06 01:37:34 INFO tool.ImportTool: Upper bound value:
TO_TIMESTAMP('2019-05-05 21:25:23.0', 'YYYY-MM-DD HH24:MI:SS.FF')
In these logs you can see it is using '2019-04-26 21:25:19.0' as lower bound value for each import means daily I'll be getting duplicate data.
现在,我想知道由于并行执行sqoop作业而面临这个问题吗?
如果是,那我应该如何解决这个问题?
注意:我没有将任何外部metastore用于sqoop。
任何有关此问题的帮助将不胜感激。
谢谢