Index: common/src/java/org/apache/hadoop/hive/conf/HiveConf.java =================================================================== --- common/src/java/org/apache/hadoop/hive/conf/HiveConf.java (revision 1500980) +++ common/src/java/org/apache/hadoop/hive/conf/HiveConf.java (working copy) @@ -61,6 +61,12 @@ private static final Map vars = new HashMap(); private final List restrictList = new ArrayList(); + /** + * List of deprecated keys mapped to its alternative. + */ + public static final Map deprecatedKeyMap = + new HashMap(); + static { ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); if (classLoader == null) { @@ -74,6 +80,8 @@ for (ConfVars confVar : ConfVars.values()) { vars.put(confVar.varname, confVar); } + + addHiveDeprecatedKeys(); } /** @@ -896,6 +904,25 @@ } /** + * Throws warning on deprecated configuration parameters. + * @param key the key to check for deprecation + */ + private static void warnIfDeprecated(String key) { + String alternative = deprecatedKeyMap.get(key); + if (alternative != null) { + l4j.warn(key + " is deprecated. Instead, use " + alternative + "."); + } + } + + /** + * Adds list of Hive deprecated keys and their alternatives to deprecation key map. + */ + private static void addHiveDeprecatedKeys() { + deprecatedKeyMap.put(ConfVars.HIVESPECULATIVEEXECREDUCERS.toString(), + ConfVars.HADOOPSPECULATIVEEXECREDUCERS.toString()); + } + + /** * Writes the default ConfVars out to a byte array and returns an input * stream wrapping that byte array. * @@ -934,6 +961,18 @@ set(name, value); } + /** + * Checks for deprecation on Hive configuration parameters. + * + * @param conf Configuration to check deprecation against. + */ + public static void handleDeprecation(Configuration conf) { + Iterator> result = conf.iterator(); + while (result.hasNext()) { + warnIfDeprecated(result.next().getKey()); + } + } + public static int getIntVar(Configuration conf, ConfVars var) { assert (var.valClass == Integer.class); return conf.getInt(var.varname, var.defaultIntVal); Index: ql/src/java/org/apache/hadoop/hive/ql/exec/ExecDriver.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/ExecDriver.java (revision 1500980) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/ExecDriver.java (working copy) @@ -319,6 +319,9 @@ HiveConf.setBoolVar(job, HiveConf.ConfVars.HADOOPSPECULATIVEEXECREDUCERS, useSpeculativeExecReducers); + // Find and handle any deprecated Hive parameters in the job setup. + HiveConf.handleDeprecation(job); + String inpFormat = HiveConf.getVar(job, HiveConf.ConfVars.HIVEINPUTFORMAT); if ((inpFormat == null) || (!StringUtils.isNotBlank(inpFormat))) { inpFormat = ShimLoader.getHadoopShims().getInputFormatClassName();