在java代码中找到hive-site.xml的位置
Find the location of hive-site.xml in java code
我想在我的 java 程序中传递 hive-site.xml 文件的位置。
在 java 代码中自动找出此文件位置的最佳方法是什么?
我不想为 cloudera 分发
硬编码 /etc/hive/conf/hive-site.xml
的路径
默认情况下,Hadoop Configuration
构造函数在 目录 中搜索 "blahblah-site.xml" 配置文件,存在于 CLASSPATH 中。如果它没有找到它们,那么它将恢复为硬编码的 "default" 值,没有任何警告 (!)。
因此请确保 CLASSPATH 包含前面的适当目录,例如/etc/hadoop/conf/:/etc/hive/conf/:/etc/tez/conf/:...
那么您在 Java 代码中唯一要做的就是检查是否使用其他硬编码默认值设置了关键属性(并引发 PleaseSetupProperClasspathYouSuckerException 如果不是这样的话)。
- 在系统环境变量中设置HIVE_HOME路径为/etc/hive/bin,在java代码中获取如下,
字符串路径=System.getenv("HIVE_HOME");
我想在我的 java 程序中传递 hive-site.xml 文件的位置。
在 java 代码中自动找出此文件位置的最佳方法是什么?
我不想为 cloudera 分发
硬编码/etc/hive/conf/hive-site.xml
的路径
默认情况下,Hadoop Configuration
构造函数在 目录 中搜索 "blahblah-site.xml" 配置文件,存在于 CLASSPATH 中。如果它没有找到它们,那么它将恢复为硬编码的 "default" 值,没有任何警告 (!)。
因此请确保 CLASSPATH 包含前面的适当目录,例如/etc/hadoop/conf/:/etc/hive/conf/:/etc/tez/conf/:...
那么您在 Java 代码中唯一要做的就是检查是否使用其他硬编码默认值设置了关键属性(并引发 PleaseSetupProperClasspathYouSuckerException 如果不是这样的话)。
- 在系统环境变量中设置HIVE_HOME路径为/etc/hive/bin,在java代码中获取如下,
字符串路径=System.getenv("HIVE_HOME");