コード例 #1
0
ファイル: CascadingJob.java プロジェクト: s16systems/ambrose
  @JsonIgnore
  public void setJobStats(HadoopStepStats stats) {
    Map<String, Long> counterNameToValue = counterGroupInfoMapHelper(stats);

    // job metrics
    int totalMappers = stats.getNumMapTasks();
    int totalReducers = stats.getNumReduceTasks();
    Map<String, Number> metrics = new HashMap<String, Number>();
    metrics.put("numberMaps", totalMappers);
    metrics.put("numberReduces", totalReducers);
    metrics.put(
        "avgMapTime",
        getAvgCounterValue(counterNameToValue, MetricsCounter.SLOTS_MILLIS_MAPS, totalMappers));
    metrics.put(
        "avgReduceTime",
        getAvgCounterValue(counterNameToValue, MetricsCounter.SLOTS_MILLIS_REDUCES, totalReducers));
    metrics.put(
        "bytesWritten", getCounterValue(counterNameToValue, MetricsCounter.FILE_BYTES_WRITTEN));
    metrics.put(
        "hdfsBytesWritten", getCounterValue(counterNameToValue, MetricsCounter.HDFS_BYTES_WRITTEN));
    metrics.put(
        "mapInputRecords", getCounterValue(counterNameToValue, MetricsCounter.MAP_INPUT_RECORDS));
    metrics.put(
        "mapOutputRecords", getCounterValue(counterNameToValue, MetricsCounter.MAP_OUTPUT_RECORDS));
    metrics.put(
        "proactiveSpillCountRecs",
        getCounterValue(counterNameToValue, MetricsCounter.SPILLED_RECORDS));
    metrics.put(
        "reduceInputRecords",
        getCounterValue(counterNameToValue, MetricsCounter.REDUCE_INPUT_RECORDS));
    metrics.put(
        "reduceOutputRecords",
        getCounterValue(counterNameToValue, MetricsCounter.REDUCE_OUTPUT_RECORDS));
    setMetrics(metrics);
  }