【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变量,不是操作系统变量

相关推荐
QQ129584550416 小时前
SSAS - 发货主题数据第1阶
数据仓库·数据分析
Hello.Reader18 小时前
Flink × Hive HiveCatalog 一键接入元数据,Flink 直接读写 Hive 表
大数据·hive·flink
Hello.Reader18 小时前
Flink + Hive Functions HiveModule、原生聚合加速、复用 Hive UDF/UDTF/UDAF
大数据·hive·flink
brave_zhao19 小时前
spoon如何连接carte如何将.ktr任务或者.kjb任务提交个远程carte服务让,carte的服务端来执行 etl脚本的任务呢?
数据仓库·etl
Hello.Reader20 小时前
Flink Hive 把 Hive 表变成“可流式消费”的数仓底座
大数据·hive·flink
B站计算机毕业设计超人1 天前
计算机毕业设计Python知识图谱中华古诗词可视化 古诗词情感分析 古诗词智能问答系统 AI大模型自动写诗 大数据毕业设计(源码+LW文档+PPT+讲解)
大数据·人工智能·hadoop·python·机器学习·知识图谱·课程设计
B站计算机毕业设计超人1 天前
计算机毕业设计Python+大模型音乐推荐系统 音乐数据分析 音乐可视化 音乐爬虫 知识图谱 大数据毕业设计
人工智能·hadoop·爬虫·python·数据分析·知识图谱·课程设计
归去来?1 天前
记录一次从https接口提取25G大文件csv并落表的经历
大数据·数据仓库·hive·python·网络协议·5g·https
徐先生 @_@|||2 天前
数据分析体系全览导图综述
大数据·hadoop·分布式·数据分析
無森~2 天前
Hive 函数
hive·hadoop·sql