public static HiveConf getHiveConf(Configuration conf) throws IOException { HiveConf hiveConf = new HiveConf(conf, HCatUtil.class); // copy the hive conf into the job conf and restore it // in the backend context if (conf.get(HCatConstants.HCAT_KEY_HIVE_CONF) == null) { conf.set(HCatConstants.HCAT_KEY_HIVE_CONF, HCatUtil.serialize(hiveConf.getAllProperties())); } else { // Copy configuration properties into the hive conf Properties properties = (Properties) HCatUtil.deserialize(conf.get(HCatConstants.HCAT_KEY_HIVE_CONF)); for (Map.Entry<Object, Object> prop : properties.entrySet()) { if (prop.getValue() instanceof String) { hiveConf.set((String) prop.getKey(), (String) prop.getValue()); } else if (prop.getValue() instanceof Integer) { hiveConf.setInt((String) prop.getKey(), (Integer) prop.getValue()); } else if (prop.getValue() instanceof Boolean) { hiveConf.setBoolean((String) prop.getKey(), (Boolean) prop.getValue()); } else if (prop.getValue() instanceof Long) { hiveConf.setLong((String) prop.getKey(), (Long) prop.getValue()); } else if (prop.getValue() instanceof Float) { hiveConf.setFloat((String) prop.getKey(), (Float) prop.getValue()); } } } if (conf.get(HCatConstants.HCAT_KEY_TOKEN_SIGNATURE) != null) { hiveConf.set( "hive.metastore.token.signature", conf.get(HCatConstants.HCAT_KEY_TOKEN_SIGNATURE)); } return hiveConf; }
/* * This is similar in spirit to Hive's own SetProcessor */ @Override public List<ConfigVariable> get_default_configuration(boolean includeHadoop) throws TException { HiveConf conf = new HiveConf(BeeswaxServiceImpl.class); Properties p; if (includeHadoop) { p = conf.getAllProperties(); } else { p = conf.getChangedProperties(); } List<ConfigVariable> ret = new ArrayList<ConfigVariable>(); for (Entry<Object, Object> e : p.entrySet()) { String key = (String) e.getKey(); String value = (String) e.getValue(); ConfigVariable cv = new ConfigVariable(); cv.setKey(key); cv.setValue(value); cv.setDescription(configDescriptions.lookup(key)); ret.add(cv); } return ret; }