【问题标题】:Adding JAR in Hive is giving error as "Query returned non-zero code: 1, cause: /user/hive/warehouse/abc.jar does not exist."在 Hive 中添加 JAR 会给出错误,因为“查询返回非零代码:1,原因:/user/hive/warehouse/abc.jar 不存在。”
【发布时间】:2016-04-28 08:23:43
【问题描述】:

我创建了一个 UDF 并将 jar 导出为 abc.jar。

将 jar 复制到 /user/hive/warehouse 的 hdfs 中。

现在,我遇到以下错误:

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

我在哪里做错了,解决办法是什么?

【问题讨论】:

  • 将 UDF jar 放在 hive 客户端机器的本地文件系统上,并在 ADD JAR 命令中给出 jar 的绝对本地路径

标签: hadoop hive hive-udf


【解决方案1】:

当您从 hdfs 添加 jar 时,请使用以下语句:

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

您没有通知您正在从 hdfs 添加 jar。这就是你的错误的原因。

希望有帮助

【讨论】:

    【解决方案2】:

    顺便说一句,你提到的路径,它会在本地文件系统中查找文件。
    要么把它放在那里,要么像这样使用 hdfs://

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

    【讨论】:

      【解决方案3】:

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

      1. 在 hive-site.xml 中添加

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

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

      【讨论】:

      • response 的目的不是回答 OP 的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多