Hadoop 配置单元:UDF错误失败:类<;类名>;找不到

Hadoop 配置单元:UDF错误失败:类<;类名>;找不到,hadoop,jar,hive,user-defined-functions,Hadoop,Jar,Hive,User Defined Functions,我试图在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

我试图在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没有复制到本地节点目录。但我不确定

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

$HIVE_HOME/bin/hive -f yourscript.sql