当前位置: 首页> 房产> 市场 > 【Hive】new HiveConf()时加载的配置浅析

【Hive】new HiveConf()时加载的配置浅析

时间:2025/7/11 1:15:23来源:https://blog.csdn.net/lisacumt/article/details/139800993 浏览次数:0次

简单看下源码:
org.apache.hadoop.hive.conf.HiveConf

HiveConf中有静态代码块,内容就是调用findConfigFile方法,尝试读取hive-default.xmlhive-site.xmlhivemetastore-site.xmlhiveserver2-site.xml。四个文件的内容。

    static {ClassLoader classLoader = Thread.currentThread().getContextClassLoader();if (classLoader == null) {classLoader = HiveConf.class.getClassLoader();}hiveDefaultURL = classLoader.getResource("hive-default.xml");hiveSiteURL = findConfigFile(classLoader, "hive-site.xml", true);hivemetastoreSiteUrl = findConfigFile(classLoader, "hivemetastore-site.xml", false);hiveServer2SiteUrl = findConfigFile(classLoader, "hiveserver2-site.xml", false);
省略... 
}

findConfigFile方法就更简单了
System.getenv("...")就是查找系统环境变量HIVE_CONF_DIRHIVE_HOME,显然HIVE_CONF_DIRHIVE_HOME优先级更高。然后组装成路径,并读取文件内容。

    private static URL findConfigFile(ClassLoader classLoader, String name, boolean doLog) {URL result = classLoader.getResource(name);if (result == null) {String confPath = System.getenv("HIVE_CONF_DIR");result = checkConfigFile(new File(confPath, name));if (result == null) {String homePath = System.getenv("HIVE_HOME");String nameInConf = "conf" + File.separator + name;result = checkConfigFile(new File(homePath, nameInConf));省略...

总结:
使用HiveConf特别简单额,设置好环境变量HIVE_CONF_DIRHIVE_HOME后就可以在代码中用了。
注意:是环境变量,不是java系统变量,即System.setProperty()和-D是不行的,这两项都是设置java变量,不是操作系统变量

关键字:【Hive】new HiveConf()时加载的配置浅析

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: