Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Oozie运行MapReduce ToolRunner作业?_Java_Hadoop_Mapreduce_Oozie - Fatal编程技术网

Java 如何使用Oozie运行MapReduce ToolRunner作业?

Java 如何使用Oozie运行MapReduce ToolRunner作业?,java,hadoop,mapreduce,oozie,Java,Hadoop,Mapreduce,Oozie,我开发了一个MapReduce应用程序,它使用ToolRunner。根据用户传递的参数和配置属性,应用程序以某种方式设置作业:选择特定的输入/输出格式,选择映射器和减速器类等。。这个逻辑是在我的主类中的run(String[]args)方法中实现的,该方法实现了Configured和Tool Oozie支持MapReduce操作节点,但问题是我不能将它们用于我的自定义ToolRunner应用程序。MapReduce操作仅允许通过配置输入/输出格式、映射器/还原器类和键/值类来定义静态作业。我的应

我开发了一个MapReduce应用程序,它使用
ToolRunner
。根据用户传递的参数和配置属性,应用程序以某种方式设置作业:选择特定的输入/输出格式,选择映射器和减速器类等。。这个逻辑是在我的主类中的
run(String[]args)
方法中实现的,该方法实现了
Configured
Tool

Oozie支持MapReduce操作节点,但问题是我不能将它们用于我的自定义
ToolRunner
应用程序。MapReduce操作仅允许通过配置输入/输出格式、映射器/还原器类和键/值类来定义静态作业。我的应用程序基于更高级别的业务逻辑动态地执行此操作

该操作应该能够执行类似以下命令行的操作:

hadoop jar my.jar com.example.MyMainClass -D my.config1=a -D my.config2=b arg1 arg2

我是否可以创建支持
ToolRunner
MapReduce应用程序的Oozie操作?

是的,您可以使用。不幸的是,这并不理想,因为Oozie创建了一个作业,然后运行您的
ToolRunner
,它创建了自己的作业。但它确实有效

是的,您可以使用。不幸的是,这并不理想,因为Oozie创建了一个作业,然后运行您的
ToolRunner
,它创建了自己的作业。但它确实有效

根据您的回答,我阅读了更多关于Java操作的内容,发现它们是从映射程序运行的,与Shell操作完全相同。猪和蜂巢的动作也是从映射器开始的吗?好问题。我没有尝试过猪或蜂巢的动作,所以我不知道它们是做什么的。不过,我不会感到惊讶。根据您的回答,我阅读了更多关于Java操作的内容,发现它们是从映射程序运行的,与Shell操作完全相同。猪和蜂巢的动作也是从映射器开始的吗?好问题。我没有尝试过猪或蜂巢的动作,所以我不知道它们是做什么的。不过我也不会感到惊讶。