@POST
  @Path("mapreduce/streaming")
  @Produces({MediaType.APPLICATION_JSON})
  public EnqueueBean mapReduceStreaming(@FormParam("input") List<String> inputs,
		      @FormParam("inputreader") String inputreader,
                      @FormParam("output") String output,
                      @FormParam("mapper") String mapper,
                      @FormParam("reducer") String reducer,
                      @FormParam("combiner") String combiner,
                      @FormParam("file") List<String> fileList,
                      @FormParam("files") String files,
                      @FormParam("define") List<String> defines,
                      @FormParam("cmdenv") List<String> cmdenvs,
                      @FormParam("arg") List<String> args,
                      @FormParam("statusdir") String statusdir,
                      @FormParam("callback") String callback,
                      @FormParam("enablelog") boolean enablelog,
                      @FormParam("enablejobreconnect") Boolean enablejobreconnect)
    throws NotAuthorizedException, BusyException, BadParam, QueueException,
    ExecuteException, IOException, InterruptedException, TooManyRequestsException {
    verifyUser();
    verifyParam(inputs, "input");
    verifyParam(mapper, "mapper");
    verifyParam(reducer, "reducer");

    Map<String, Object> userArgs = new HashMap<String, Object>();
    userArgs.put("user.name", getDoAsUser());
    userArgs.put("input", inputs);
    userArgs.put("inputreader", inputreader);
    userArgs.put("output", output);
    userArgs.put("mapper", mapper);
    userArgs.put("reducer", reducer);
    userArgs.put("combiner", combiner);
    userArgs.put("file",  fileList);
    userArgs.put("files",  files);
    userArgs.put("define",  defines);
    userArgs.put("cmdenv",  cmdenvs);
    userArgs.put("arg",  args);
    userArgs.put("statusdir", statusdir);
    userArgs.put("callback", callback);
    userArgs.put("enablelog", Boolean.toString(enablelog));
    userArgs.put("enablejobreconnect", enablejobreconnect);
    checkEnableLogPrerequisite(enablelog, statusdir);

    StreamingDelegator d = new StreamingDelegator(appConf);
    return d.run(getDoAsUser(), userArgs, inputs, inputreader, output, mapper, reducer, combiner,
      fileList, files, defines, cmdenvs, args,
      statusdir, callback, getCompletedUrl(), enablelog, enablejobreconnect, JobType.STREAMING);
  }
Run a MapReduce Streaming job.
@param callback URL which WebHCat will call when the hive job finishes
hcatalog/webhcat/svr/src/main/java/org/apache/hive/hcatalog/templeton/Server.java