private void loadParameters() {
    Map<String, String> paramMap = _heuristicConfData.getParamMap();
    String heuristicName = _heuristicConfData.getHeuristicName();

    double[] confNumTasksThreshold = Utils.getParam(paramMap.get(NUM_TASKS_SEVERITY), numTasksLimits.length);
    if (confNumTasksThreshold != null) {
      numTasksLimits = confNumTasksThreshold;
    }
    logger.info(heuristicName + " will use " + NUM_TASKS_SEVERITY + " with the following threshold settings: "
        + Arrays.toString(numTasksLimits));

    double[] confDeviationThreshold = Utils.getParam(paramMap.get(DEVIATION_SEVERITY), deviationLimits.length);
    if (confDeviationThreshold != null) {
      deviationLimits = confDeviationThreshold;
    }
    logger.info(heuristicName + " will use " + DEVIATION_SEVERITY + " with the following threshold settings: "
        + Arrays.toString(deviationLimits));

    double[] confFilesThreshold = Utils.getParam(paramMap.get(FILES_SEVERITY), filesLimits.length);
    if (confFilesThreshold != null) {
      filesLimits = confFilesThreshold;
    }
    logger.info(
        heuristicName + " will use " + FILES_SEVERITY + " with the following threshold settings: " + Arrays.toString(
            filesLimits));
    for (int i = 0; i < filesLimits.length; i++) {
      filesLimits[i] = filesLimits[i] * HDFSContext.HDFS_BLOCK_SIZE;
    }
  }
This Heuristic analyses the skewness in the task input data
app/com/linkedin/drelephant/mapreduce/heuristics/GenericSkewHeuristic.java