如何在oozie作业中将文件添加到分布式缓存

bihw5rsg  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(360)

我正在实现一个oozie工作流,在第一个工作中,我使用sqoop从数据库读取数据并将其写入hdfs。在第二个作业中,我需要读取大量数据,并使用我刚刚在作业一中编写的文件来处理大量数据。以下是我的想法或尝试:
假设作业一将文件写入hdfs上的某个目录,那么将文件添加到作业二的驱动程序类中的分布式缓存将不起作用,因为oozie工作流只知道作业的mapper和reducer类(如果我错了,请纠正我)
我还尝试写入工作流的lib目录,希望这些文件随后会自动添加到分布式缓存中,但我明白,当作业运行时,lib目录应该是只读的。
我还想如果我能把这些文件添加到 setup() 然后我可以在mapper/reducer中访问它们。我不知道如何添加文件 setup() ,有可能吗?
如何从分布式缓存中读取后续作业中上一个作业的输出文件。我已经在使用作业2的输入目录来读取需要处理的数据,所以我不能使用它。
我在Ubuntu12.04虚拟机上使用Hadoop1.2.1和Oozie3.3.2。

vsdwdz23

vsdwdz231#

添加以下属性以将文件或存档添加到Map缩减操作。有关详细信息,请参阅本文档。

<file>[FILE-PATH]</file>
            ...
<archive>[FILE-PATH]</archive>

您还可以在java命令行中输入,如下所示。

<main-class>org.apache.oozie.MyFirstMainClass</main-class>
            <java-opts>-Dblah</java-opts>
            <arg>argument1</arg>
            <arg>argument2</arg>

相关问题