code: private String getKrb5ccname(final Props jobProps) {
      final String effectiveUser = getEffectiveUser(jobProps);
      final String projectName =
          jobProps.getString(CommonJobProperties.PROJECT_NAME).replace(" ", "_");
      final String flowId =
          jobProps.getString(CommonJobProperties.FLOW_ID).replace(" ", "_");
      final String jobId =
          jobProps.getString(CommonJobProperties.JOB_ID).replace(" ", "_");
      // execId should be an int and should not have space in it, ever
      final String execId = jobProps.getString(CommonJobProperties.EXEC_ID);
      final String krb5ccname =
          String.format("/tmp/krb5cc__%s__%s__%s__%s__%s", projectName, flowId,
              jobId, execId, effectiveUser);
  
      return krb5ccname;
    }
docs: <pre>
  This method extracts the kerberos ticket cache file name from the jobprops.
  This method will ensure that each job execution will have its own kerberos ticket cache file
  Given that the code only sets an environmental variable, the number of files created
  corresponds
  to the number of processes that are doing kinit in their flow, which should not be an
  inordinately
  high number.
  </pre>
  
  @return file name: the kerberos ticket cache file to use