我正在尝试使用Java动作为Oozie中的驱动程序运行一系列MR作业 .

问题是MR作业是在本地运行而不是在Hadoop集群上运行 . 如何解决这个问题?

以下是使用默认构造函数创建配置时的配置

Configuration conf = new Configuration()

mapreduce.jobtracker.address = local
mapreduce.framework.name = local

通过将其添加到配置(基于以下链接),我能够在HDP群集上运行我的MR作业:

Configuration conf = new Configuration(false);
conf.addResource(new Path("file:///", System.getProperty("oozie.action.conf.xml")));

然后,当我打印conf时,它看起来像:

mapreduce.jobtracker.address = 192.168.84.27:8050
mapreduce.framework.name = yarn

但为什么我需要这样做以及如何避免呢?我有一系列从这个Java动作运行的MR作业,我不想将自己绑定到使用Oozie并将其添加到每个作业的配置中 . 有没有办法让我的作业默认在Oozie上运行?

我应该提一下,这是一个HDP集群,并通过Ambari进行设置 .