今天我发现如果我复制 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。
1条答案
按热度按时间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群集的逗号分隔文件