Hadoop Map/Reduce
  1. Hadoop Map/Reduce
  2. MAPREDUCE-3772

MultipleOutputs output lost if baseOutputPath starts with ../

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Invalid
    • Affects Version/s: 0.20.2
    • Fix Version/s: None
    • Component/s: client
    • Labels:
      None
    • Target Version/s:

      Description

      Lets say you have output directory set:

      FileOutputFormat.setOutputPath(job, "/tmp/multi1/out");

      and want to place output from MultipleOutputs into /tmp/multi1/extra

      I expect following code to work:

      mos = new MultipleOutputs<Text, IntWritable>(context);
      mos.write(new Text("zrr"), value, "../extra/");

      but no Exception is throw and expected output directory /tmp/multi1/extra does not even exists. All data written to this output vanish without trace.

      To make it work fullpath must be used
      mos.write(new Text("zrr"), value, "/tmp/multi1/extra/");

      Output is listed in statistics from MultipleOutputs correctly:

      org.apache.hadoop.mapreduce.lib.output.MultipleOutputs
      ../gaja1/=13333 (* everything is lost *)
      /tmp/multi1/out/../ksd34/=13333 (* this using full path works *)
      list1=6667

        Activity

          People

          • Assignee:
            Harsh J
            Reporter:
            Radim Kolar
          • Votes:
            1 Vote for this issue
            Watchers:
            12 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development