首页 > 解决方案 > 在直线中注册 Hive UDF 时面临问题

问题描述

我试图注册一个 HIVe UDF,如下所述,但最终出现错误。请告诉我在这种情况下该怎么办?

0:

 jdbc:hive2://g4t7479.calfor.abbcorp.net:1> ADD JAR  /MAPR/DBLCLK/double_click/HiveUDF/AXX-DoubleClick-0.0.1-SNAPSHOT-jar-with-dependencies.jar;
Error: Error while processing statement: /MAPR/DBLCLK/double_click/HiveUDF/AXX-DoubleClick-0.0.1-SNAPSHOT-jar-with-dependencies.jar does not exist (state=,code=1)

0: jdbc:hive2://g4t7479.calfor.abbcorp.net:1> CREATE TEMPORARY FUNCTION stringTrim as 'com.axx.gma.dclick.StringTrim' USING JAR 'hdfs://MAPR/DBLCLK/double_click/HiveUDF/AXX-DoubleClick-0.0.1-SNAPSHOT-jar-with-dependencies.jar';
Error: Error while compiling statement: FAILED: SemanticException java.lang.IllegalArgumentException: java.net.UnknownHostException: MAPR (state=42000,code=40000)

0: jdbc:hive2://g4t7479.calfor.abbcorp.net:1> CREATE TEMPORARY FUNCTION stringTrim as 'com.axx.gma.dclick.StringTrim' USING JAR 'hdfs:://MAPR/DBLCLK/double_click/HiveUDF/AXX-DoubleClick-0.0.1-SNAPSHOT-jar-with-dependencies.jar';
Error: Error while compiling statement: FAILED: IllegalArgumentException java.net.URISyntaxException: Relative path in absolute URI: hdfs::/MAPR/DBLCLK/double_click/HiveUDF/AXX-DoubleClick-0.0.1-SNAPSHOT-jar-with-dependencies.jar (state=42000,code=40000)

标签: hivehiveqlbeeline

解决方案


错误:处理语句时出错:/MAPR/DBLCLK/double_click/HiveUDF/AXX-DoubleClick-0.0.1-SNAPSHOT-jar-with-dependencies.jar 不存在(状态=,代码=1)

上面的错误消息表明 jar 不是预设的,也没有被添加,所以使用该 JAR 创建一个函数肯定会给你错误。

使用以下命令检查 JAR 是否存在。如果您使用不同的文件系统命令可能不同,这将适用于 hdfs。

hdfs dfs -ls /MAPR/DBLCLK/double_click/HiveUDF/AXX-DoubleClick-0.0.1-SNAPSHOT-jar-with-dependencies.jar

如果不是,您需要将文件从本地系统移动到hdfs文件系统。或将命令更改为ADD LOCAL JAR(但这在直线中不起作用)

即使您在添加 JAR 时没有收到任何错误,最好使用以下命令(来自 hive 或 beeline)来确保它已被添加。

列出罐子;

这将显示所有已添加的罐子。


推荐阅读