Custom Partitioner not working in Oozie Mapreduce action -


i have implemented secondary sort in mapreduce , trying execute using oozie (from hue).

though have set partitioner class in properties, partitioner not being executed. so, i'm not getting output expected.

the same code runs fine when run using hadoop command.

and here workflow.xml

<workflow-app name="mytriplets" xmlns="uri:oozie:workflow:0.5"> <start to="mapreduce-598d"/> <kill name="kill">     <message>action failed, error message[${wf:errormessage(wf:lasterrornode())}]</message> </kill> <action name="mapreduce-598d">     <map-reduce>         <job-tracker>${jobtracker}</job-tracker>         <name-node>${namenode}</name-node>         <configuration>             <property>                 <name>mapred.output.dir</name>                 <value>/test_1109_3</value>             </property>             <property>                 <name>mapred.input.dir</name>                 <value>/apps/hive/warehouse/7360_0609_rx/day=06-09-2017/hour=13/quarter=2/,/apps/hive/warehouse/7360_0609_tx/day=06-09-2017/hour=13/quarter=2/,/apps/hive/warehouse/7360_0509_util/day=05-09-2017/hour=16/quarter=1/</value>             </property>             <property>                 <name>mapred.input.format.class</name>                 <value>org.apache.hadoop.hive.ql.io.rcfileinputformat</value>             </property>             <property>                 <name>mapred.mapper.class</name>                 <value>ponrankmapper</value>             </property>             <property>                 <name>mapred.reducer.class</name>                 <value>ponrankreducer</value>             </property>             <property>                 <name>mapred.output.value.comparator.class</name>                 <value>ponrankgroupingcomparator</value>             </property>             <property>                 <name>mapred.mapoutput.key.class</name>                 <value>ponrankpair</value>             </property>             <property>                 <name>mapred.mapoutput.value.class</name>                 <value>org.apache.hadoop.io.text</value>             </property>             <property>                 <name>mapred.reduce.output.key.class</name>                 <value>org.apache.hadoop.io.nullwritable</value>             </property>             <property>                 <name>mapred.reduce.output.value.class</name>                 <value>org.apache.hadoop.io.text</value>             </property>             <property>                 <name>mapred.reduce.tasks</name>                 <value>1</value>             </property>             <property>                 <name>mapred.partitioner.class</name>                 <value>ponrankpartitioner</value>             </property>             <property>                 <name>mapred.mapper.new-api</name>                 <value>false</value>             </property>         </configuration>     </map-reduce>     <ok to="end"/>     <error to="kill"/> </action> <end name="end"/> 

when running using hadoop jar command, set partitioner class using jobconf.setpartitionerclass api.

not sure why partitioner not executed when running using oozie. inspite of adding

            <property>                 <name>mapred.partitioner.class</name>                 <value>ponrankpartitioner</value>             </property> 

any i'm missing when running oozie ??

solved re-writing mapreduce job using new api's.

the property used in oozie workflow partitioner mapreduce.partitioner.class.


Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -