2016-04-28 126 views
0

我创建了一个UDF并将该jar导出为abc.jar。在Hive中添加JAR时出现错误:“查询返回的非零代码:1,原因:/user/hive/warehouse/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,我可以在/用户/蜂巢/仓库路径看abc.jar

我在哪里做错了,这是什么解决方案?

+0

地点的本地文件系统上的UDF罐子蜂房客户端机器并给ADD JAR命令 –

回答

1

当您从HDFS添加罐子使用下面的语句:

ADD jar hdfs://namenode/user/hive/warehouse/abc.jar; 

你不通知你添加从HDFS的罐子。这是你错误的原因。

希望帮助

+0

感谢罐子的绝对本地路径。它的工作 – earl

0

他们的方式,你提的路径,它看起来在本地文件系统中的文件。
要么将​​它放在这里,或使用HDFS://这样

hive> ADD JAR /user/hive/warehouse/abc.jar => local filesystem 
hive> ADD JAR hdfs://namenodei/user/hive/warehouse/abc.jar => In hdfs 
+0

谢谢。它使用 – earl

0

上述选项的有效期仅为当前会话。所以每次你需要写ADD JAR。 为了永久添加它,推荐的方法如下。

  1. 添加在蜂房的site.xml

    <property> <name>hive.aux.jars.path</name> <value>file://localpath/yourjar.jar</value> </property>

  2. 复制和JAR文件粘贴到文件夹${HIVE_HOME}/auxlib/

+0

响应的方式并不旨在回答OP的问题。 – SrinivasR

相关问题