HIVE:UDF 错误失败:找不到类 <ClassName>

Posted

技术标签:

【中文标题】HIVE:UDF 错误失败:找不到类 <ClassName>【英文标题】:HIVE: UDF Error FAILED: Class <ClassName> not found 【发布时间】:2015-03-26 21:43:07 【问题描述】:

我正在尝试在 HIVE 中使用 myjar.jar 作为 UDF 函数,如下所示,

echo "Add myjar.jar"
$HIVE_HOME/bin/hive -e "ADD JAR  /gpfs/user/username/HIVE/myjar.jar;"

echo "List myjar.jar, this is showing local directory path"
$HIVE_HOME/bin/hive -e "list jar;"


$HIVE_HOME/bin/hive -e "drop function if exists myfunction;"

echo "Create temporary function, my class name is UpperCase"

$HIVE_HOME/bin/hive -e "CREATE TEMPORARY FUNCTION myfunction AS 'Upper.UpperCase';"

$HIVE_HOME/bin/hive -e "SELECT myfunction(line) FROM doc where line='COCO';" 

但我收到以下错误,

FAILED: Class Upper.UpperCase not found
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.FunctionTask

我怀疑问题可能是我的 jar 没有复制到本地节点目录。但我不确定。

【问题讨论】:

【参考方案1】:

ADD JAR 仅适用于运行它的会话 - 但在您的情况下,您正在为每个语句运行一个新会话。相反,您应该将所有语句放在一个脚本中,并以类似方式调用它:

$HIVE_HOME/bin/hive -f yourscript.sql

【讨论】:

以上是关于HIVE:UDF 错误失败:找不到类 <ClassName>的主要内容,如果未能解决你的问题,请参考以下文章

SemanticException [错误 10014] Hive UDF

Hive实战UDF 外部依赖文件找不到的问题#yyds干货盘点#

hive安装失败,提示找不到类 org/apache/thrift/TException

IDEA maven项目报错,找不到或无法找到主类

无法使用 Hive 支持实例化 SparkSession,因为找不到 Hive 类 [重复]

从 HIVE UDF 读取 HDFS 文件 - 执行错误,返回代码 101 FunctionTask。无法初始化类