如何使用java执行现有的sqoop作业?

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

在这里,我使用java进行增量导入。但我不知道如何使用现有的工作。
我是说

sqoop job --create moviesJob1 -- import --connect jdbc:mysql://localhost/mydb --username root -P --table movies --m 1 --target-dir /movies --incremental append --check-column movieId --last-val 0

 SqoopOptions options  = new SqoopOptions();
            options.setJobName(tableDTO.getTableName()+"Job");
            options.setDriverClassName(driver);
            options.setHadoopHome(HADOOP_HOME);
            options.setConnectString(MYSQL_CONNECTION_STRING);
            options.setUsername(USERNAME);
            options.setPassword(PASSWORD);
            options.setTableName(tableDTO.getTableName());
            options.setNumMappers(Integer.parseInt(tableDTO.getNoOfMappers()));
            options.setTargetDir(HDFS_DIRECTORY_PATH+"/"+tableDTO.getTableName());
            options.setFieldsTerminatedBy('|');
            options.setAppendMode(true);
            options.setIncrementalMode(IncrementalMode.AppendRows);
            options.setIncrementalLastValue("0");

我已经为此编写了代码,现在我必须执行:

sqoop job --exec moviesJob1

要执行此操作:

options.getJobName(); // getting JobName but not finding method to run job

有人能提个建议吗?提前谢谢。

djmepvbi

djmepvbi1#

尝试以下操作:

new ExportTool().run(options);

或:

new com.cloudera.sqoop.tool.ImportTool().run(options);

相关问题