我正在尝试使用<java>操作在Oozie工作stream中执行Map-Reduce任务。 O'Reilley的Apache Oozie (伊斯兰和斯里尼瓦桑2015)指出: 虽然不推荐使用Java操作,但可以使用Java操作来运行Hadoop MapReduce作业,因为MapReduce作业毕竟是Java程序。 被调用的主类可以是Hadoop MapReduce驱动程序,可以调用Hadoop API来运行MapReduce作业。 在这种模式下,Hadoop根据需要生成更多的映射器和reducer,并在集群上运行它们。 但是,我没有成功使用这种方法。 工作stream中的操作定义如下所示: <java> <!– Namenode etc. in global configuration –> <prepare> <delete path="${transformOut}" /> </prepare> <configuration> <property> <name>mapreduce.job.queuename</name> <value>default</value> </property> </configuration> <main-class>package.containing.TransformTool</main-class> <arg>${transformIn}</arg> <arg>${transformOut}</arg> <file>${avroJar}</file> <file>${avroMapReduceJar}</file> </java> 工具实现的main()实现如下所示: public static void main(String[] args) throws Exception { int res = ToolRunner.run(new TransformTool(), args); if (res != […]