コード例 #1
0
  public void configure(JobConf job) {
    super.configure(job);
    if (resultIndexes.length > 1) throw new RuntimeException("MMCJMR only outputs one result");

    outputDummyRecords = MapReduceTool.getUniqueKeyPerTask(job, false).equals("0");

    try {
      // valueBuffer=valueClass.newInstance();
      valueBuffer = buffer;
      remainingbuffer = new RemainIndexValue(valueClass);
    } catch (Exception e) {
      throw new RuntimeException(e);
    }

    int blockRlen = dim1.getRowsPerBlock();
    int blockClen = dim2.getColsPerBlock();
    int elementSize = (int) Math.ceil((double) (77 + 8 * blockRlen * blockClen + 20 + 12) / 0.75);
    OUT_CACHE_SIZE =
        ((long) OptimizerUtils.getLocalMemBudget() // current jvm max mem
                - MRJobConfiguration.getMMCJCacheSize(job))
            / elementSize;
    outCache = new HashMap<MatrixIndexes, MatrixValue>(1024);
  }