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