2013-11-25 54 views
1

我正嘗試在oozie中配置Mapreduce作業。該作業有兩種不同的輸入格式和兩個輸入數據文件夾。我用這篇文章How to configure oozie workflow for multi-input path with multiple mappers 並添加這些屬性來我workflow.xml:OOZIE中的多輸入路徑配置

 <property> 
       <name>mapred.input.dir.formats</name> 
       <value>folder/data/*;org.apache.hadoop.mapred.SequenceFileInputFormat\,data/*;org.apache.hadoop.mapred.TextInputFormat</value> 
      </property> 

      <property> 
       <name>mapred.input.dir.mappers</name> 
       <value>folder/data/*;....PublicMapper\,data/*;....PublicMapper</value> 
      </property> 

但是當工作啓動我有以下錯誤:「在工作中未指定輸入路徑」。

有沒有人可以幫助我?

THKS

+0

這些看起來像(模糊)相對路徑 - 做一個用戶存在這些路徑,但Oozie的運行作業的其他用戶? –

+0

感謝您的回答克里斯。 – SlimShady

+0

感謝您的回答克里斯。 該路徑確實是相對路徑(上面顯示的路徑不是真正的路徑)。對於單個輸入格式和mapred.output.dir屬性,同樣的路徑效果很好。似乎上面給出的屬性並沒有被OOZIE考慮到,並且引入了hadoop配置。 – SlimShady

回答

2

你需要設置一些附加屬性:

<property> 
    <name>mapreduce.inputformat.class</name> 
    <value>org.apache.hadoop.mapreduce.lib.input.DelegatingInputFormat</value> 
</property> 
<property> 
    <name>mapreduce.map.class</name> 
    <value>org.apache.hadoop.mapreduce.lib.input.DelegatingMapper</value> 
</property> 
1

我今天所面臨的同樣的問題,所以我用了以下屬性。

<property> 
    <name>mapreduce.inputformat.class</name> 
    <value>org.apache.hadoop.mapreduce.lib.input.DelegatingInputFormat</value> 
</property> 
<property> 
    <name>mapreduce.map.class</name> 
    <value>org.apache.hadoop.mapreduce.lib.input.DelegatingMapper</value> 
</property> 

<property> 
    <name>mapreduce.input.multipleinputs.dir.formats</name> 
    <value>/first/input/path;org.apache.hadoop.mapreduce.lib.input.KeyValueTextInputFormat,/second/input/path;org.apache.hadoop.mapreduce.lib.input.KeyValueTextInputFormat</value> 
</property> 
<property> 
    <name>mapreduce.input.multipleinputs.dir.mappers</name> 
    <value>/first/input/path;com.first.Mapper,/second/input/path;com.second.Mapper</value> 
</property> 

所不同的是代替mapred.input.dir.formatsmapred.input.dir.mappers即,舊地圖減少API我分別使用mapreduce.input.multipleinputs.dir.formatsmapreduce.input.multipleinputs.dir.mappers的一部分。代碼在那之後工作得很好。我在Hadoop 1.2.1和Oozie 3.3.2上運行它。