当前位置: 首页 > news >正文

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

简单看下源码:
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变量,不是操作系统变量

http://www.lryc.cn/news/377139.html

相关文章:

  • Glide 缓存机制研究及同命名图片的替换回显
  • 一键简易桌签(带背景)-Word插件-大珩助手
  • 如何解决centos停止维护后更换Debian11平替?
  • 服务器雪崩的应对策略之----熔断机制
  • RestClient操作索引库和文档
  • 【设计模式深度剖析】【11】【行为型】【解释器模式】| 以算术表达式求值为例加深理解
  • MySQL8,Navicat能登陆成功,密码却忘记了
  • 游戏中的寻路算法研究
  • 【AWS SMB】关于AWS 中小型企业 (SMB) 能力介绍及注意事项
  • 中年之恋:重返青春的旅程
  • 人工智能中的监督学习和无监督学习
  • 深度学习500问——Chapter12:网络搭建及训练(1)
  • HuggingFace CLI 命令全面指南
  • FreeRTOS源码分析
  • python实战:将视频内容上传到社交媒体平台
  • 【深度学习】sdwebui A1111 加速方案对比,xformers vs Flash Attention 2
  • 5分钟了解单元测试
  • VSCode之C/C++插件之宏定义导致颜色变暗
  • 自然语言处理概述
  • 用Rust和Pingora轻松构建超越Nginx的高效负载均衡器
  • 华为云与AWS负载均衡服务深度对比:性能、成本与可用性
  • Vue65-组件之间的传值
  • Java零基础之多线程篇:线程生命周期
  • 技术差异,应用场景;虚拟机可以当作云服务器吗
  • Qt Quick 教程(一)
  • react钩子函数用法(useCallback、useMemo)
  • linux配置Vnc Server给Windows连接
  • Android中的KeyEvent详解
  • 移植案例与原理 - HDF驱动框架-驱动配置(2)
  • 年终奖发放没几天,提离职领导指责我不厚道,我该怎么办?