如何从 Java 运行 MapReduceIndexerTool 作业?

How to run MapReduceIndexerTool job from Java?

我想 运行 来自 Java 的 MapReduceIndexerTool。

现在我使用 hadoop jar 从命令行执行此操作,如您所见 here,但我想检查它的状态(查看它是否已完成、正在进行等) Java代码。

所以基本上我想从 Java 运行 它 以便能够从 Java 检查它的状态。有没有办法从命令行 运行 并从 Java 检查它的状态?

此外,有没有办法让 Map Reduce 在作业完成时发送事件(例如回调)?像 webhook 之类的东西?

据我所知,Tool 接口仅公开 int run(String[] args) 方法,因此通常您会创建新实例,形成适当的参数字符串并调用该方法。

另一方面,MapReduceIndexerToolint run(Options options) 方法,可用于 运行 它而无需形成 shell 式参数。但是,此方法是受保护的,因此需要在与 MapReduceIndexerTool.

相同的包中创建调用 class