Oozie中的MapReduce作业可以从文件中读取吗?

时间:2015-08-05 08:31:34

标签: hadoop mapreduce oozie

在Oozie中创建工作流程时,我有第一个java步骤,它生成一个文件,其中包含下一步所需的文件列表(map-reduce)。如何使用该文件提供map-reduce作业?

我知道我可以勾选java步骤的 Capture输出框,然后在map-reduce步骤中使用 mapred.input.dir 来使用捕获的输出作为输入。但我想脱离这一点。

仅供记录,我的文件内容如下:

  

/data/kafka/4/camus/DATA.TRADE.ORDERHISTORY/daily/2015/07/18,/data/kafka/4/camus/DATA.TRADE.ORDERHISTORY/daily/2015/07/19,/数据/卡夫卡/ 4 /加缪/ DATA.TRADE.ORDERHISTORY /每日/ 2015/07/20,/数据/卡夫卡/ 4 /加缪/ DATA.TRADE.ORDERHISTORY /每日/ 2015/07/21,/数据/卡夫卡/ 4 /加缪/ DATA.TRADE.ORDERHISTORY /每日/ 2015/07/22 /数据/卡夫卡/ 4 /加缪/ DATA.TRADE.ORDERHISTORY /每日/ 2015/07/23,/数据/卡夫卡/ 4 /加缪/ DATA.TRADE.ORDERHISTORY /每日/ 2015/07/24,/数据/卡夫卡/ 4 /加缪/ DATA.TRADE.ORDERHISTORY /每日/ 2015/07/25,/数据/卡夫卡/ 4 /加缪/ DATA.TRADE。 ORDERHISTORY /每日/ 2015/07/26,/数据/卡夫卡/ 4 /加缪/ DATA.TRADE.ORDERHISTORY /每日/ 2015/07/27,/数据/卡夫卡/ 4 /加缪/ DATA.TRADE.ORDERHISTORY /每日/ 2015年7月28日

1 个答案:

答案 0 :(得分:1)

是否要将该文件用作输入文件参数文件 ??

在第二种情况下,

  • 为初始操作
  • 激活< capture-output /> 选项
  • 输出类似" param.file = / a / b / c / z.txt"
  • 在下一个Action中,使用适当的EL函数来检索 文件名并将其作为< property> < env>

    传递

    $ {WF:actionData(" InitialActionName")[" param.file"]}

  • 然后使用几行Java打开该HDFS文件并执行任何操作 在做实际的Map之前,你应该对内容做些什么 或减少工作