在java代码中找到hive-site.xml的位置

时间:2015-11-24 18:58:11

标签: hadoop hive cloudera

我想在我的java程序中传递hive-site.xml文件的位置。

在java代码中自动查找此文件位置的最佳方法是什么?

我不想硬编码{{1}}用于cloudera distibution的路径

2 个答案:

答案 0 :(得分:1)

默认情况下,Hadoop Configuration构造函数在 CLASSPATH 中的目录中搜索“blahblah-site.xml”配置文件。如果它没有找到它们,那么它将恢复为硬编码的“默认”值,而不会发出任何警告(!)。

因此,请确保CLASSPATH包含正面的相应目录,例如/etc/hadoop/conf/:/etc/hive/conf/:/etc/tez/conf/:...

然后,您在Java代码中唯一需要做的就是检查关键属性是否设置了其他硬编码默认值(并且如果不是这样,则引发 PleaseSetupProperClasspathYouSuckerException

答案 1 :(得分:0)

  • 在系统环境变量中将HIVE_HOME路径设置为/ etc / hive / bin,并在java代码中获取,如下所示,

字符串路径= System.getenv(" HIVE_HOME");