/** * 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.hadoop.zebra.types; import org.apache.hadoop.conf.Configuration; /** * Zebra's implementation of Pig's Tuple. * It's derived from Pig's DefaultTuple implementation. * */ public class ZebraConf { // input configurations // output configurations private static final String MAPREDUCE_OUTPUT_PATH = "mapreduce.lib.table.output.dir"; private static final String MAPREDUCE_MULTI_OUTPUT_PATH = "mapreduce.lib.table.multi.output.dirs"; private static final String MAPREDUCE_OUTPUT_SCHEMA = "mapreduce.lib.table.output.schema"; private static final String MAPREDUCE_OUTPUT_STORAGEHINT = "mapreduce.lib.table.output.storagehint"; private static final String MAPREDUCE_OUTPUT_SORTCOLUMNS = "mapreduce.lib.table.output.sortcolumns"; private static final String MAPREDUCE_OUTPUT_COMPARATOR = "mapreduce.lib.table.output.comparator"; private static final String IS_MULTI = "multi"; private static final String ZEBRA_OUTPUT_PARTITIONER_CLASS = "zebra.output.partitioner.class"; private static final String ZEBRA_OUTPUT_PARTITIONER_CLASS_ARGUMENTS = "zebra.output.partitioner.class.arguments"; private static final String MAPREDUCE_OUTPUT_CHECKTYPE = "mapreduce.lib.table.output.checktype"; private static final String MAPRED_OUTPUT_PATH = "mapred.lib.table.output.dir"; private static final String MAPRED_MULTI_OUTPUT_PATH = "mapred.lib.table.multi.output.dirs"; private static final String MAPRED_OUTPUT_SCHEMA = "mapred.lib.table.output.schema"; private static final String MAPRED_OUTPUT_STORAGEHINT = "mapred.lib.table.output.storagehint"; private static final String MAPRED_OUTPUT_SORTCOLUMNS = "mapred.lib.table.output.sortcolumns"; private static final String MAPRED_OUTPUT_COMPARATOR = "mapred.lib.table.output.comparator"; static public String getOutputPath(Configuration conf) { return conf.get(MAPREDUCE_OUTPUT_PATH) != null? conf.get(MAPREDUCE_OUTPUT_PATH): conf.get(MAPRED_OUTPUT_PATH); } static public void setOutputPath(Configuration conf, String value) { conf.set(MAPREDUCE_OUTPUT_PATH, value); } static public String getMultiOutputPath(Configuration conf) { return conf.get(MAPREDUCE_MULTI_OUTPUT_PATH) != null? conf.get(MAPREDUCE_MULTI_OUTPUT_PATH) : conf.get(MAPRED_MULTI_OUTPUT_PATH); } static public void setMultiOutputPath(Configuration conf, String value) { conf.set(MAPREDUCE_MULTI_OUTPUT_PATH, value); } static public String getOutputSchema(Configuration conf) { return conf.get(MAPREDUCE_OUTPUT_SCHEMA) != null? conf.get(MAPREDUCE_OUTPUT_SCHEMA): conf.get(MAPRED_OUTPUT_SCHEMA); } static public void setOutputSchema(Configuration conf, String value) { conf.set(MAPREDUCE_OUTPUT_SCHEMA, value); } static public String getOutputStorageHint(Configuration conf) { return conf.get(MAPREDUCE_OUTPUT_STORAGEHINT) != null? conf.get(MAPREDUCE_OUTPUT_STORAGEHINT) : conf.get(MAPRED_OUTPUT_STORAGEHINT) != null? conf.get(MAPRED_OUTPUT_STORAGEHINT) : ""; } static public void setOutputStorageHint(Configuration conf, String value) { conf.set(MAPREDUCE_OUTPUT_STORAGEHINT, value); } static public String getOutputSortColumns(Configuration conf) { return conf.get(MAPREDUCE_OUTPUT_SORTCOLUMNS) != null? conf.get(MAPREDUCE_OUTPUT_SORTCOLUMNS) : conf.get(MAPRED_OUTPUT_SORTCOLUMNS); } static public void setOutputSortColumns(Configuration conf, String value) { if (value != null) { conf.set(MAPREDUCE_OUTPUT_SORTCOLUMNS, value); } } static public String getOutputComparator(Configuration conf) { return conf.get(MAPREDUCE_OUTPUT_COMPARATOR) != null? conf.get(MAPREDUCE_OUTPUT_COMPARATOR): conf.get(MAPRED_OUTPUT_COMPARATOR); } static public void setOutputComparator(Configuration conf, String value) { conf.set(MAPREDUCE_OUTPUT_COMPARATOR, value); } static public Boolean getIsMulti(Configuration conf, boolean defaultValue) { return conf.getBoolean(IS_MULTI, defaultValue); } static public void setIsMulti(Configuration conf, boolean value) { conf.setBoolean(IS_MULTI, value); } static public Boolean getCheckType(Configuration conf, boolean defaultValue) { return conf.getBoolean(MAPREDUCE_OUTPUT_CHECKTYPE, defaultValue); } static public void setCheckType(Configuration conf, boolean value) { conf.setBoolean(MAPREDUCE_OUTPUT_CHECKTYPE, value); } static public String getZebraOutputPartitionerClass(Configuration conf) { return conf.get(ZEBRA_OUTPUT_PARTITIONER_CLASS); } static public void setZebraOutputPartitionerClass(Configuration conf, String value) { conf.set(ZEBRA_OUTPUT_PARTITIONER_CLASS, value); } static public String getOutputPartitionClassArguments(Configuration conf) { return conf.get(ZEBRA_OUTPUT_PARTITIONER_CLASS_ARGUMENTS); } static public void setOutputPartitionClassArguments(Configuration conf, String value) { conf.set(ZEBRA_OUTPUT_PARTITIONER_CLASS_ARGUMENTS, value); } }