为什么hive会首先在hadoop\u conf\u dir中搜索它的配置文件?

j9per5c4  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(342)

今天我发现如果我复制 hive-site.xml 进入 $HADOOP_HOME/etc/hadoop/ ,Hive将使用 hive-site.xml$HADOOP_HOME/etc/hadoop/ 而不是那个 $HIVE_HOME/conf ,它还将搜索 hive-log4j.properties$HADOOP_HOME/etc/hadoop/ .
如果找不到,配置单元将只使用中的默认配置 /lib/hive-common-1.1.0-cdh5.7.6.jar!/hive-log4j.properties 而不是定制的 $HIVE_HOME/conf ,但为什么?
我在apache.org的官方配置单元手册中搜索了关键字copy hive-site.xml to hadoop\u home,但没有找到任何解释。。。
我的配置单元版本是hive-1.1.0-cdh5.7.6、hadoop版本hadoop-2.6.0-cdh5.7.6、jdk 1.7。

vmpqdwk3

vmpqdwk31#

所以,您已经提到了sqoop,因此我将指出获取hivexml配置的正确过程。
1) 如果找不到文件,则会出现类路径问题。复制文件是一种解决方案,但效果不佳。最好使用符号链接。
每次我使用sqoop时,我都不会乱来控制任何xml文件——它只是工作而已。因此,hdp和cdh都必须具有正确的类路径和/或符号链接设置。
2) 文档说明了从何处加载配置
sqoop将回到$hadoop\u home。如果没有设置,sqoop将分别使用apachebigtop、/usr/lib/hadoop和/usr/lib/hadoop mapreduce的默认安装位置。
活动的hadoop配置是从$hadoop\u home/conf/加载的,除非设置了$hadoop\u conf\u dir环境变量
这个类路径控制从何处加载配置
3) 您还可以在运行时提供额外的文件
-文件 <comma separated list of files> 指定要复制到map reduce群集的逗号分隔文件

sqoop import -files $HIVE_HOME/conf/hive-site.xml ...

相关问题