コード例 #1
0
ファイル: DagUtils.java プロジェクト: sushrutikhar/hive
  /*
   * Helper function to create Vertex for given ReduceWork.
   */
  private Vertex createVertex(
      JobConf conf,
      ReduceWork reduceWork,
      LocalResource appJarLr,
      List<LocalResource> additionalLr,
      FileSystem fs,
      Path mrScratchDir,
      Context ctx)
      throws Exception {

    // set up operator plan
    Utilities.setReduceWork(conf, reduceWork, mrScratchDir, false);

    // create the directories FileSinkOperators need
    Utilities.createTmpDirs(conf, reduceWork);

    // Call once here, will be updated when we find edges
    MultiStageMRConfToTezTranslator.translateVertexConfToTez(conf, null);

    // create the vertex
    Vertex reducer =
        new Vertex(
            reduceWork.getName(),
            new ProcessorDescriptor(ReduceTezProcessor.class.getName())
                .setUserPayload(MRHelpers.createUserPayloadFromConf(conf)),
            reduceWork.getNumReduceTasks(),
            getContainerResource(conf));

    Map<String, String> environment = new HashMap<String, String>();

    MRHelpers.updateEnvironmentForMRTasks(conf, environment, false);
    reducer.setTaskEnvironment(environment);

    reducer.setJavaOpts(getContainerJavaOpts(conf));

    Map<String, LocalResource> localResources = new HashMap<String, LocalResource>();
    localResources.put(getBaseName(appJarLr), appJarLr);
    for (LocalResource lr : additionalLr) {
      localResources.put(getBaseName(lr), lr);
    }
    reducer.setTaskLocalResources(localResources);

    return reducer;
  }