blob: ace87cac71ee441ff399743f9025e0a65f23133c [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.tez.common;
import org.apache.hadoop.classification.InterfaceAudience.Private;
import org.apache.hadoop.classification.InterfaceStability.Evolving;
/**
* Meant for user configurable job properties. For others look at {@link Constants}
*
*/
// TODO EVENTUALLY A description for each property.
@Private
@Evolving
public class TezJobConfig {
/** The number of milliseconds between progress reports. */
public static final int PROGRESS_INTERVAL = 3000;
public static final long DEFAULT_COMBINE_RECORDS_BEFORE_PROGRESS = 10000;
/**
* Configuration key to enable/disable IFile readahead.
*/
public static final String TEZ_RUNTIME_IFILE_READAHEAD =
"tez.runtime.ifile.readahead";
public static final boolean DEFAULT_TEZ_RUNTIME_IFILE_READAHEAD = true;
/**
* Configuration key to set the IFile readahead length in bytes.
*/
public static final String TEZ_RUNTIME_IFILE_READAHEAD_BYTES =
"tez.runtime.ifile.readahead.bytes";
public static final int DEFAULT_TEZ_RUNTIME_IFILE_READAHEAD_BYTES =
4 * 1024 * 1024;
/**
*
*/
public static final String RECORDS_BEFORE_PROGRESS =
"tez.task.merge.progress.records";
public static final long DEFAULT_RECORDS_BEFORE_PROGRESS = 10000;
/**
* List of directories avialble to the Runtime.
*/
@Private
public static final String LOCAL_DIRS = "tez.runtime.local.dirs";
public static final String DEFAULT_LOCAL_DIRS = "/tmp";
/**
* One local dir for the speicfic job.
*/
public static final String JOB_LOCAL_DIR = "tez.runtime.job.local.dir";
/**
* The directory which contains the localized files for this task.
*/
@Private
public static final String TASK_LOCAL_RESOURCE_DIR = "tez.runtime.task-local-resource.dir";
public static final String DEFAULT_TASK_LOCAL_RESOURCE_DIR = "/tmp";
public static final String TEZ_TASK_WORKING_DIR = "tez.runtime.task.working.dir";
/**
*
*/
public static final String TEZ_RUNTIME_IO_SORT_FACTOR =
"tez.runtime.io.sort.factor";
public static final int DEFAULT_TEZ_RUNTIME_IO_SORT_FACTOR = 100;
/**
*
*/
public static final String TEZ_RUNTIME_SORT_SPILL_PERCENT =
"tez.runtime.sort.spill.percent";
public static float DEFAULT_TEZ_RUNTIME_SORT_SPILL_PERCENT = 0.8f;
/**
*
*/
public static final String TEZ_RUNTIME_IO_SORT_MB = "tez.runtime.io.sort.mb";
public static final int DEFAULT_TEZ_RUNTIME_IO_SORT_MB = 100;
/**
*
*/
public static final String TEZ_RUNTIME_INDEX_CACHE_MEMORY_LIMIT_BYTES =
"tez.runtime.index.cache.memory.limit.bytes";
public static final int DEFAULT_TEZ_RUNTIME_INDEX_CACHE_MEMORY_LIMIT_BYTES =
1024 * 1024;
/**
*
*/
public static final String TEZ_RUNTIME_COMBINE_MIN_SPILLS =
"tez.runtime.combine.min.spills";
public static final int DEFAULT_TEZ_RUNTIME_COMBINE_MIN_SPILLS = 3;
/**
*
*/
public static final String TEZ_RUNTIME_SORT_THREADS =
"tez.runtime.sort.threads";
public static final int DEFAULT_TEZ_RUNTIME_SORT_THREADS = 1;
/**
* Specifies a partitioner class, which is used in Tez Runtime components
* like OnFileSortedOutput
*/
public static final String TEZ_RUNTIME_PARTITIONER_CLASS = "tez.runtime.partitioner.class";
/**
* Specifies a combiner class (primarily for Shuffle)
*/
public static final String TEZ_RUNTIME_COMBINER_CLASS = "tez.runtime.combiner.class";
public static final String TEZ_RUNTIME_NUM_EXPECTED_PARTITIONS = "tez.runtime.num.expected.partitions";
/**
*
*/
public static final String COUNTERS_MAX_KEY = "tez.runtime.job.counters.max";
public static final int COUNTERS_MAX_DEFAULT = 120;
/**
*
*/
public static final String COUNTER_GROUP_NAME_MAX_KEY = "tez.runtime.job.counters.group.name.max";
public static final int COUNTER_GROUP_NAME_MAX_DEFAULT = 128;
/**
*
*/
public static final String COUNTER_NAME_MAX_KEY = "tez.runtime.job.counters.counter.name.max";
public static final int COUNTER_NAME_MAX_DEFAULT = 64;
/**
*
*/
public static final String COUNTER_GROUPS_MAX_KEY = "tez.runtime.job.counters.groups.max";
public static final int COUNTER_GROUPS_MAX_DEFAULT = 50;
/**
* Temporary interface for MR only (not chained Tez) to indicate whether
* in-memory shuffle should be used.
*/
@Private
public static final String TEZ_RUNTIME_SHUFFLE_USE_IN_MEMORY =
"tez.runtime.shuffle.use.in-memory";
public static final boolean DEFAULT_TEZ_RUNTIME_SHUFFLE_USE_IN_MEMORY = false;
// TODO NEWTEZ Remove these config parameters. Will be part of an event.
@Private
public static final String TEZ_RUNTIME_SHUFFLE_PARTITION_RANGE =
"tez.runtime.shuffle.partition-range";
public static int TEZ_RUNTIME_SHUFFLE_PARTITION_RANGE_DEFAULT = 1;
/**
*
*/
public static final String TEZ_RUNTIME_SHUFFLE_PARALLEL_COPIES =
"tez.runtime.shuffle.parallel.copies";
public static final int DEFAULT_TEZ_RUNTIME_SHUFFLE_PARALLEL_COPIES = 20;
/**
* TODO Is this user configurable.
*/
public static final String TEZ_RUNTIME_METRICS_SESSION_ID =
"tez.runtime.metrics.session.id";
public static final String DEFAULT_TEZ_RUNTIME_METRICS_SESSION_ID = "";
/**
*
*/
public static final String TEZ_RUNTIME_SHUFFLE_FETCH_FAILURES =
"tez.runtime.shuffle.fetch.failures.limit";
public final static int DEFAULT_TEZ_RUNTIME_SHUFFLE_FETCH_FAILURES_LIMIT = 10;
/**
*
*/
public static final String TEZ_RUNTIME_SHUFFLE_NOTIFY_READERROR =
"tez.runtime.shuffle.notify.readerror";
public static final boolean DEFAULT_TEZ_RUNTIME_SHUFFLE_NOTIFY_READERROR = true;
/**
*
*/
public static final String TEZ_RUNTIME_SHUFFLE_CONNECT_TIMEOUT =
"tez.runtime.shuffle.connect.timeout";
public static final int DEFAULT_TEZ_RUNTIME_SHUFFLE_STALLED_COPY_TIMEOUT =
3 * 60 * 1000;
/**
*
*/
public static final String TEZ_RUNTIME_SHUFFLE_READ_TIMEOUT = "tez.runtime.shuffle.read.timeout";
public final static int DEFAULT_TEZ_RUNTIME_SHUFFLE_READ_TIMEOUT =
3 * 60 * 1000;
/**
*
*/
public static final String TEZ_RUNTIME_SHUFFLE_ENABLE_SSL =
"tez.runtime.shuffle.ssl.enable";
public static final boolean DEFAULT_TEZ_RUNTIME_SHUFFLE_ENABLE_SSL = false;
/**
*
*/
public static final String TEZ_RUNTIME_SHUFFLE_INPUT_BUFFER_PERCENT =
"tez.runtime.shuffle.input.buffer.percent";
public static final float DEFAULT_TEZ_RUNTIME_SHUFFLE_INPUT_BUFFER_PERCENT =
0.90f;
/**
*
*/
public static final String TEZ_RUNTIME_SHUFFLE_MEMORY_LIMIT_PERCENT =
"tez.runtime.shuffle.memory.limit.percent";
public static final float DEFAULT_TEZ_RUNTIME_SHUFFLE_MEMORY_LIMIT_PERCENT =
0.25f;
/**
*
*/
public static final String TEZ_RUNTIME_SHUFFLE_MERGE_PERCENT =
"tez.runtime.shuffle.merge.percent";
public static final float DEFAULT_TEZ_RUNTIME_SHUFFLE_MERGE_PERCENT = 0.90f;
/**
* TODO TEZAM3 default value ?
*/
public static final String TEZ_RUNTIME_SHUFFLE_MEMTOMEM_SEGMENTS =
"tez.runtime.shuffle.memory-to-memory.segments";
/**
*
*/
public static final String TEZ_RUNTIME_SHUFFLE_ENABLE_MEMTOMEM =
"tez.runtime.shuffle.memory-to-memory.enable";
public static final boolean DEFAULT_TEZ_RUNTIME_SHUFFLE_ENABLE_MEMTOMEM =
false;
/**
*
*/
public static final String TEZ_RUNTIME_INPUT_BUFFER_PERCENT =
"tez.runtime.task.input.buffer.percent";
public static final float DEFAULT_TEZ_RUNTIME_INPUT_BUFFER_PERCENT = 0.0f;
// TODO Rename.
public static final String TEZ_RUNTIME_GROUP_COMPARATOR_CLASS =
"tez.runtime.group.comparator.class";
// TODO Better name.
public static final String TEZ_RUNTIME_INTERNAL_SORTER_CLASS =
"tez.runtime.internal.sorter.class";
public static final String TEZ_RUNTIME_INTERMEDIATE_OUTPUT_KEY_COMPARATOR_CLASS =
"tez.runtime.intermediate-output.key.comparator.class";
public static final String TEZ_RUNTIME_INTERMEDIATE_INPUT_KEY_COMPARATOR_CLASS =
"tez.runtime.intermediate-input.key.comparator.class";
public static final String TEZ_RUNTIME_INTERMEDIATE_OUTPUT_KEY_CLASS =
"tez.runtime.intermediate-output.key.class";
public static final String TEZ_RUNTIME_INTERMEDIATE_INPUT_KEY_CLASS =
"tez.runtime.intermediate-input.key.class";
public static final String TEZ_RUNTIME_INTERMEDIATE_OUTPUT_VALUE_CLASS =
"tez.runtime.intermediate-output.value.class";
public static final String TEZ_RUNTIME_INTERMEDIATE_INPUT_VALUE_CLASS =
"tez.runtime.intermediate-input.value.class";
public static final String TEZ_RUNTIME_INTERMEDIATE_OUTPUT_SHOULD_COMPRESS =
"tez.runtime.intermediate-output.should-compress";
public static final String TEZ_RUNTIME_INTERMEDIATE_INPUT_IS_COMPRESSED =
"tez.runtime.intermdiate-input.is-compressed";
public static final String TEZ_RUNTIME_INTERMEDIATE_OUTPUT_COMPRESS_CODEC =
"tez.runtime.intermediate-output.compress.codec";
public static final String TEZ_RUNTIME_INTERMEDIATE_INPUT_COMPRESS_CODEC =
"tez.runtime.intermediate-input.compress.codec";
public static final String TEZ_RUNTIME_INTERMEDIATE_INPUT_KEY_SECONDARY_COMPARATOR_CLASS =
"tez.runtime.intermediate-input.key.secondary.comparator.class";
// TODO This should be in DAGConfiguration
/* config for tracking the local file where all the credentials for the job
* credentials.
*/
public static final String DAG_CREDENTIALS_BINARY = "tez.dag.credentials.binary";
}