我正在使用 Sqoop 1.4.4 及其 java api 来运行导入作业,但在导入完成后我无法弄清楚如何访问作业计数器。我在 ConfigurationHelper 类中看到了合适的方法,例如 getNumMapOutputRecords,但我不确定如何将作业传递给它们。
有没有办法从 SqoopTool 或 Sqoop 对象中获得工作?
我的代码看起来像这样:
SqoopTool sqoopTool = new ImportTool();
SqoopOptions options = new SqoopOptions();
options.setConnectString(connectString);
options.setUsername(username);
options.setPassword(password);
options.setTableName(table);
options.setColumns(columns);
options.setWhereClause(whereClause);
options.setTargetDir(targetDir);
options.setNumMappers(1);
options.setFileLayout(FileLayout.TextFile);
options.setFieldsTerminatedBy(delimiter);
Configuration config = new Configuration();
config.set("oracle.sessionTimeZone", timezone.getID());
System.setProperty(Sqoop.SQOOP_RETHROW_PROPERTY, "1");
Sqoop sqoop = new Sqoop(sqoopTool, config, options);
String[] nullArgs = new String[0];
Sqoop.runSqoop(sqoop, nullArgs);