gpt4 book ai didi

hadoop - Oozie 使用一个映射器处理多个目录中的输入

转载 作者:可可西里 更新时间:2023-11-01 16:31:10 25 4
gpt4 key购买 nike

我正在尝试设置一个 Oozie map-reduce 工作流操作来处理分布在多个目录中的输入文件。具体来说,假设我的输入分布在以下目录中

/data/d_20150629-2200
/data/d_20150630-2210
/data/d_20150530-2220
/data/d_20150531-2230
/data/d_20150701-2240
/data/d_20150702-2250

一般来说,没有一个简单的 glob 模式来捕获我在运行时期望的文件列表。

我的 workflow.xml 中的输入规范是:

<property>
<name>mapred.input.dir</name>
<value>${inputFile}</value>
</property>

而我的workflow.properties中的参数值是:

inputFile=/user/streaming/data/d_*

有了这个,我的 Oozie 工作自然会处理data 下以d_ 开头的所有 目录。有没有办法修改 workflow.xml 或 workflow.properties 来告诉 Oozie 只处理列出的六个目录下的文件?

在 Pig 中,可以指定以逗号分隔的输入路径列表。我还看到了这两个帖子( post1post2 ),它们涉及到这个问题。但就我而言,我既不想在不同的输入路径上应用不同的映射器,也不想使用不同的输入格式。我只想为同一个映射器指定多个输入目录。

Hadoop版本:Hadoop 2.3.0-cdh5.1.5Oozie客户端构建版本:4.0.0-cdh5.1.5

感谢您的帮助。

最佳答案

mapred.input.dir 文档说明它是

a comma separated list of input directories

所以你可以在 workflow.properties 中定义一个属性

inputFilePath=/user/streaming/data

并在workflow.xml中使用

<property>
<name>mapred.input.dir</name>
<value>${inputFilePath}/d_20150629-2200,${inputFilePath}/d_20150630-2210, ...</value>
</property>

但是如果你只想运行一次,那么将所需的复制/移动到一个单独的目录并将其传递给输入会更容易。

关于hadoop - Oozie 使用一个映射器处理多个目录中的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31227642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com