2017-09-04 46 views
0

这里我正在使用Java进行增量式导入。但我没有得到如何使用已有的工作。如何使用java执行现有的sqoop作业?

我的意思是

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 

谁能给建议? 在此先感谢。

回答

0

尝试这样:

new ExportTool().run(options); 

或:

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