content: /*
   * 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 com.aliyun.odps.mapred.conf;
  
  /**
   * 定义 MapReduce 作业配置中可以允许用户自定义的配置参数.
   */
  class CONF {
  
    /**
     * 当前任务添加的资源，运行时可读取.
     *
     * @see com.aliyun.odps.mapred.conf.JobConf#addResources(String)
     */
    public final static String RESOURCES = "odps.mapred.resources";
  
    /**
     * 任务的{@link com.aliyun.odps.mapred.Mapper}的输出键值对KEY的行属性, 也是
     * {@link com.aliyun.odps.mapred.Reducer}的输入键值对KEY的行属性
     *
     * @see com.aliyun.odps.mapred.conf.JobConf#setMapOutputKeySchema(com.aliyun.odps.Column[])
     * @see com.aliyun.odps.mapred.conf.JobConf#getMapOutputKeySchema()
     */
    public final static String MAPOUTPUT_KEY_SCHEMA = "odps.mapred.mapoutput.key.schema";
    /**
     * 任务的{@link com.aliyun.odps.mapred.Mapper}的输出键值对VALUE的行属性, 该行属性也是
     * {@link com.aliyun.odps.mapred.Reducer}的输入键值对VALUE的行属性
     *
     * @see com.aliyun.odps.mapred.conf.JobConf#setMapOutputValueSchema(com.aliyun.odps.Column[])
     * @see com.aliyun.odps.mapred.conf.JobConf#getMapOutputValueSchema()
     */
    public final static String MAPOUTPUT_VALUE_SCHEMA = "odps.mapred.mapoutput.value.schema";
    /**
     * KEY排序使用的列, 在{@link com.aliyun.odps.mapred.Mapper}的输出键值对按照
     * {@link #PARTITION_COLUMNS} 划分后，按这里指定的列名列表排序.对指定的单个列,排序的规则遵循自然序.
     *
     * @see com.aliyun.odps.mapred.conf.JobConf#setOutputKeySortColumns(String[])
     * @see com.aliyun.odps.mapred.conf.JobConf#getOutputKeySortColumns()
     */
    public final static String OUTPUT_KEY_SORT_COLUMNS = "odps.mapred.output.key.sort.columns";
    /**
     * KEY排序的顺序设定，对
     * {@link com.aliyun.odps.mapred.conf.JobConf#setOutputKeySortColumns(String[])}
     * 设定的每一个排序列，指定排序顺序。可选的顺序为升序
     * {@link com.aliyun.odps.mapred.conf.JobConf.SortOrder#INC}或降序
     * {@link com.aliyun.odps.mapred.conf.JobConf.SortOrder#DESC}。
     *
     * @see com.aliyun.odps.mapred.conf.JobConf#setOutputKeySortColumns(String[])
     * @see com.aliyun.odps.mapred.conf.JobConf#getOutputKeySortColumns()
     */
    public final static String OUTPUT_KEY_SORT_ORDER = "odps.mapred.output.key.sort.order";
    /**
     * 任务的KEY聚合列, 在{@link com.aliyun.odps.mapred.Reducer}的输入键值对依照
     * {@link #OUTPUT_KEY_SORT_COLUMNS}排序后, 该聚合器将聚合后的键值对传递给
     * {@link com.aliyun.odps.mapred.Reducer}.
     *
     * @see com.aliyun.odps.mapred.conf.JobConf#setOutputGroupingColumns(String[])
     * @see com.aliyun.odps.mapred.conf.JobConf#getOutputGroupingColumns()
     */
    public final static String OUTPUT_GROUP_COLUMNS = "odps.mapred.output.group.columns";
    /**
     * 任务的{@link com.aliyun.odps.mapred.Mapper}类.
     *
     * @see com.aliyun.odps.mapred.Mapper
     * @see com.aliyun.odps.mapred.conf.JobConf#setMapperClass(Class)
     * @see com.aliyun.odps.mapred.conf.JobConf#getMapperClass()
     */
    public final static String MAP_CLASS = "odps.mapred.map.class";
    /**
     * 任务的{@link com.aliyun.odps.mapred.Mapper}的输出键值对的分区类.
     *
     * @see com.aliyun.odps.mapred.conf.JobConf#setPartitionColumns(String[])
     * @see com.aliyun.odps.mapred.conf.JobConf#setPartitionColumns(String[])
     */
    public final static String PARTITION_COLUMNS = "odps.mapred.partition.columns";
    /**
     * 任务的partitioner类.
     *
     * @see com.aliyun.odps.mapred.conf.JobConf#setPartitionerClass(Class)
     * @see com.aliyun.odps.mapred.conf.JobConf#getPartitionerClass()
     */
    public final static String PARTITION_CLASS = "odps.mapred.partition.class";
    /**
     * 任务的{@link com.aliyun.odps.mapred.Reducer}类.
     *
     * @see com.aliyun.odps.mapred.Reducer
     * @see com.aliyun.odps.mapred.conf.JobConf#setReducerClass(Class)
     * @see com.aliyun.odps.mapred.conf.JobConf#getReducerClass()
     */
    public final static String REDUCE_CLASS = "odps.mapred.reduce.class";
    /**
     * 任务的combiner类.
     *
     * @see com.aliyun.odps.mapred.conf.JobConf#setCombinerClass(Class)
     * @see com.aliyun.odps.mapred.conf.JobConf#getCombinerClass()
     */
    public final static String COMBINE_CLASS = "odps.mapred.combine.class";
    /**
     * 任务的{@link com.aliyun.odps.mapred.Mapper}个数.
     *
     * @see com.aliyun.odps.mapred.Mapper
     * @see com.aliyun.odps.mapred.conf.JobConf#setNumMapTasks(int)
     * @see com.aliyun.odps.mapred.conf.JobConf#getNumMapTasks()
     */
    public final static String MAP_TASKS = "odps.stage.mapper.num";
    /**
     * 任务的{@link com.aliyun.odps.mapred.Reducer}个数.
     *
     * @see com.aliyun.odps.mapred.Reducer
     * @see com.aliyun.odps.mapred.conf.JobConf#setNumReduceTasks(int)
     * @see com.aliyun.odps.mapred.conf.JobConf#getNumReduceTasks()
     */
    public final static String REDUCE_TASKS = "odps.stage.reducer.num";
  
    /**
     * 任务的{@link com.aliyun.odps.mapred.Mapper} 内存资源
     *
     * @see com.aliyun.odps.mapred.conf.JobConf#setMemoryForMapTask(int)
     * @see com.aliyun.odps.mapred.conf.JobConf#getMemoryForMapTask()
     */
    public final static String MAP_MEMORY = "odps.stage.mapper.mem";
  
    /**
     * 任务的{@link com.aliyun.odps.mapred.Reducer} 内存资源
     *
     * @see com.aliyun.odps.mapred.conf.JobConf#setMemoryForReduceTask(int)
     * @see com.aliyun.odps.mapred.conf.JobConf#getMemoryForReduceTask()
     */
    public final static String REDUCE_MEMORY = "odps.stage.reducer.mem";
  
    /**
     * 任务的JVM内存资源
     *
     * @see com.aliyun.odps.mapred.conf.JobConf#setMemoryForJVM(int)
     * @see com.aliyun.odps.mapred.conf.JobConf#getMemoryForJVM()
     */
    public final static String JVM_MEMORY = "odps.stage.jvm.mem";
  
    /**
     * 任务的 Map JVM 内存资源
     *
     * @see com.aliyun.odps.mapred.conf.JobConf#setMemoryForMapperJVM(int)
     * @see com.aliyun.odps.mapred.conf.JobConf#getMemoryForMapperJVM()
     */
    public final static String MAP_JVM_MEMORY = "odps.stage.mapper.jvm.mem";
  
    /**
     * 任务的 Reduce JVM 内存资源
     *
     * @see com.aliyun.odps.mapred.conf.JobConf#setMemoryForReducerJVM(int)
     * @see com.aliyun.odps.mapred.conf.JobConf#getMemoryForReducerJVM()
     */
    public final static String REDUCE_JVM_MEMORY = "odps.stage.reducer.jvm.mem";
  
    /**
     * {@link com.aliyun.odps.mapred.Mapper}输入的切分大小
     *
     * @see com.aliyun.odps.mapred.Mapper
     * @see com.aliyun.odps.mapred.conf.JobConf#setSplitSize(long)
     * @see com.aliyun.odps.mapred.conf.JobConf#getSplitSize()
     */
    public final static String MAP_SPLIT_SIZE = "odps.stage.mapper.split.size";
  
    /**
     * 输出表的行属性
     */
    public static final String OUTPUT_SCHEMA = "odps.mapred.output.schema";
  
    /**
     * 输入表的行属性
     */
    public static final String INPUT_SCHEMA = "odps.mapred.input.schema";
  
    /**
     * Combiner缓存记录数
     */
    public final static String COMBINER_CACHE_ITEMS = "odps.mapred.combiner.cache.items";
  
    /**
     * Combiner缓存的Spill阈值
     */
    public final static String COMBINER_CACHE_SPILL_PERCENT = "odps.mapred.combiner.cache.spill.percent";
  
    /**
     * Combiner优化开关
     */
    public final static String COMBINER_OPTIMIZE_ENABLE = "odps.mapred.combiner.optimize.enable";
  
    /**
     * 子任务超时时间（秒）
     */
    public final static String FUNCTION_TIMEOUT = "odps.function.timeout";
  
    /**
     * Instance优先级设定
     */
    public final static String INSTANCE_PRIORITY = "odps.instance.priority";
  
    /**
     * 设置是否覆盖输出表
     */
    public final static String OUTPUT_OVERWRITE = "odps.mapred.output.overwrite";
  
    /**
     * 设置是否在中间节点进行输出
     */
    public final static String INNER_OUTPUT_ENABLE = "odps.mapred.inner.output.enable";
  
    public static final String OUTPUT_KEY_COMPARATOR_CLASS = "odps.stage.mapred.output.key.comparator.class";
  
    public static final String OUTPUT_KEY_GROUPING_COMPARATOR_CLASS = "odps.mapred.output.key.grouping.comparator.class";
  
    public final static String MR2SQL_FUNCTION_RESOURCES = "odps.mapred.function.resources";
  
    public final static String MR2SQL_FUNCTION_CREATE_TEXT = "odps.mapred.function.create.text";
  
    public final static String MR2SQL_FUNCTION_DROP_TEXT = "odps.mapred.function.drop.text";
  
    public final static String MR2SQL_PIPELINE_LIST = "odps.pipeline.list";
  
    public final static String MR2SQL_PIPELINE_OUTPUT_KEY_SCHEMA = "odps.pipeline.%d.output.key.schema";
  
    public final static String MR2SQL_PIPELINE_OUTPUT_VALUE_SCHEMA = "odps.pipeline.%d.output.value.schema";
  
    public final static String MR2SQL_STREAMJOB_ADDENVIRONMENT = "stream.addenvironment";
  
    public final static String MR2SQL_STREAMJOB_PROCESSOR = "stream.%s.streamprocessor";
  
    public final static String MR2SQL_REDUCE_INSTACNES = "odps.sql.reducer.instances";
  
    public final static String MR2SQL_JOIN_INSTACNES = "odps.sql.joiner.instances";
  
    public final static String MR2SQL_PARTITION_CLASS = "odps.pipeline.%s.partition.class";
  
    public final static String MR2SQL_DYNAMIC_PARALLELISM = "odps.optimizer.cbo.enable.dynamic.parallelism";
  
  }
  