我尝试使用 ADD JAR hive-contrib-0.10.0.jar 命令在配置单元中添加 hive-contrib-0.10.0.jar,但它总是说 hive-contrib-0.10.0.jar 不存在。
我现在使用的是 HDP 2.1 版本。我还使用hue将此jar文件添加到
/user/root
文件夹中并运行命令
ADD JAR hdfs:///hive-contrib-0.10.0.jar
但它给了我同样的错误
jar file doesn't exist
。
有什么办法可以解决这个问题吗? 我应该将这个 jar 文件保存在哪里才能成功运行以及要使用的命令是什么?
示例:
hadoop fs -put ~/Downloads/hive.jar /lib/
打开蜂巢外壳
add jar hdfs:///lib/hive.jar
对于本地jar,使用
file://
作为前缀,例如:
add jar file:///tmp/my-lib.jar
我发现您的方法存在以下问题。添加之前,请确保您能够在本地文件系统或 hdfs 上列出该文件(无论该文件是否存在)。
您尝试添加的 jar 默认情况下位于 hive 类路径中,作为 $HIVE_HOME/lib 的一部分(在安装了 hive 客户端/服务的本地文件系统上)
另一方面,关于如何在 hive 中添加 jar 的问题,我们可以使用本地文件系统或 hadoop 分布式文件系统(HDFS)添加
Add jar file:///root/hive-contrib-0.10.0.jar (Given that you copied this jar on LFS root directory)
Add jar hdfs://<namenode_hostname>:8020/user/root/hive-contrib-0.10.0.jar (Given that you copied to HDFS root home)
如果您想永久添加罐子,您需要执行以下操作。 1.Hive-site.xml(/etc/hive/conf)
<property>
<name>hive.aux.jars.path</name>
<value>file:///mnt1/hive-jars/hive-contrib-2.1.1.jar</value>
</property>
理想情况下,这应该在重新启动 hive-server2 后起作用。 3. sudo 停止 hive-server2 4. sudo 启动 hive-server2
但有时它不起作用。我不知道为什么,所以你可以使用以下肮脏的方式。
将 jar 文件放在以下路径中,以便 hive 在重新启动时自动获取它。
我已阅读上面的这些答案,非常有用。我将所有内容合并为一个解决方案:
将jar放入本地磁盘并授予读/写权限
chmod -R 777 /tmp/json.jar
上传到hdfs文件系统并授予权限:
hdfs dfs -put /tmp/json.jar hdfs://1.1.1.1:8020/jars/
hdfs dfs -chmod -R 777 hdfs://1.1.1.1:8020/jars/
将 jar 添加到 hive 环境中。
add jar hdfs://1.1.1.1:8020/jars/json.jar