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

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

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

java 复制代码
    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优先级更高。然后组装成路径,并读取文件内容。

java 复制代码
    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变量,不是操作系统变量

相关推荐
yumgpkpm9 小时前
Iceberg在Cloudera CDP集群详细操作步骤
大数据·人工智能·hive·zookeeper·spark·开源·cloudera
yumgpkpm12 小时前
Iceberg在Hadoop集群使用步骤(适配AI大模型)
大数据·hadoop·分布式·华为·zookeeper·开源·cloudera
清平乐的技术专栏16 小时前
Hive SQL中COALESCE 函数和NVL()函数、IFNULL函数区别
hive·hadoop·sql
爱吃大芒果16 小时前
Flutter 列表优化:ListView 性能调优与复杂列表实现
开发语言·hive·hadoop·flutter·华为
Yore Yuen16 小时前
Hive内表修改字段类型及注意事项
数据仓库·hive·hadoop
梦里不知身是客1116 小时前
yarn向hive提交队列的方式
数据仓库·hive·hadoop
Direction_Wind18 小时前
Iceberg 与 Hive 用法区别
数据仓库·hive·hadoop
本旺18 小时前
【Starrocks + Hive 】BitMap + 物化视图 实战记录
大数据·数据仓库·hive
fvafuc18 小时前
常用odps(hive)语法
数据仓库·hive·hadoop
jinxinyuuuus1 天前
vsGPU:硬件参数的数据仓库设计、ETL流程与前端OLAP分析
前端·数据仓库·etl