当前位置: 首页 > 知识库问答 >
问题:

在配置单元中添加UDF时出错

郤浩慨
2023-03-14
create function strip1 as 'com.hadoopbook.hive.Strip' using jar '/home/hduser/Hadoop-tutorial/hadoop-book-master/ch17-hive/src/main/java/com/hadoopbook/hive/Strip.jar'

失败:执行错误,从org.apache.hadoop.hive.ql.exec.FunctionTask返回代码1。配置单元仓库是非本地的,但是/home/hduser/hadoop-tutorial/hadoop-book-master/ch17-hive/src/main/java/com/hadoopbook/Hive/strip.jar指定本地文件系统中的文件。非本地仓库上的资源应指定非本地方案/路径

有人能告诉我怎么解决这个问题吗?

共有1个答案

阎嘉荣
2023-03-14

三种选择:

  1. 在hdfs上复制jar并使用该路径。

 <property>
   <name>hive.metastore.warehouse.dir</name>
   <value>hdfs://usr/hive/warehouse </value>
   <description>location of the warehouse directory</description>
 </property>
 hive> set hive.metastore.warehouse.dir;
 hive.metastore.warehouse.dir=/user/hive/warehouse
hive> set hive.metastore.warehouse.dir="hdfs://user/hive/warehouse";
 类似资料:
  • 我将geenrated jar文件添加到hdfs目录中,使用: 我尝试使用以下命令创建一个UDf: 但是我得到了如下错误: jar文件被成功地创建并添加到Hive,但它仍然显示没有找到那个类。谁能说出它出了什么问题吗?

  • 添加/home/cloudera/date.jar到类路径添加资源:/home/cloudera/date.jar 请有人帮帮我,因为我是新来蜂巢的。有人能告诉我要遵循的步骤吗

  • 我看到这样一个udf: https://github.com/edwardcapriolo/hive-geoip 如何在Hive中利用udf?我可以自己创建函数名吗?

  • 我在java中开发了一个工作正常的配置单元udf,我的函数返回输入与配置单元表中列之间的最佳匹配,因此它有以下简化的伪代码: 我的问题是,如果这个函数是由Hive调用的,为什么我需要在代码中连接到Hive?我可以使用使用我的功能的用户所连接的当前连接吗?

  • 我已经在hive:udfrowsequence中尝试过这个UDF。 但是它不产生唯一的值,即它依赖于映射器重复序列。 假设我有一个文件(有4条记录)在HDFS中可用。它将为该作业创建一个映射器,结果将类似于 1 2 3 4 1 2 3 4 1 2 。

  • 请告诉我如何在udf中使用hive conf变量,以及如何在hive udf中访问hive配置?