我创建了一个UDF并将jar导出为abc.jar。
在/ user / hive / warehouse中的hdfs中复制jar。
现在,我收到了以下错误:
hive> ADD JAR /user/hive/warehouse/abc.jar;
/user/hive/warehouse/abc.jar does not exist
Query returned non-zero code: 1, cause: /user/hive/warehouse/abc.jar does not exist.
hive>
当我这样做时,hadoop fs -ls /user/hive
,我可以在 / user / hive / warehouse 路径上看到 abc.jar 。
我在哪里做错了,解决方法是什么?
答案 0 :(得分:1)
从hdfs添加jar时,请使用以下语句:
ADD jar hdfs://namenode/user/hive/warehouse/abc.jar;
您没有通知您正在从hdfs添加jar。这是导致错误的原因。
希望有所帮助
答案 1 :(得分:1)
方式,你提到路径,它将在本地文件系统中查看文件 要么把它放在那里,要么像这样使用 hdfs://
hive> ADD JAR /user/hive/warehouse/abc.jar => local filesystem
hive> ADD JAR hdfs://namenodei/user/hive/warehouse/abc.jar => In hdfs
答案 2 :(得分:0)
以上选项仅对当前会话有效。所以每次你需要写ADD JAR
。
为了永久添加它,建议的方法如下。
在hive-site.xml中添加
<property>
<name>hive.aux.jars.path</name>
<value>file://localpath/yourjar.jar</value>
</property>
将JAR文件复制并粘贴到${HIVE_HOME}/auxlib/
文件夹