我试图注册一个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)
错误:处理语句时出错:/MAR/DBLCLK/double_click/HiveUDF/AX-DoubleClick-0.0.1-SNAPSHOT-jar-with-dependences.jar不存在(状态=,代码=1)
上面的错误消息表明jar不是预设的,也没有添加,所以使用该jar创建函数肯定会给您带来错误。
使用以下命令检查JAR是否存在。如果您使用不同的文件系统命令,这将适用于hdfs。
hdfs dfs-ls/MAPR/DBLCLK/double_click/HiveUDF/ASX-DoubleClick-0.0.1-SNAPSHOT-jar-with-dependences.jar
如果不是,则需要将文件从本地系统移动到hdfs
文件系统。或者将命令更改为ADD LOCAL JAR
(但这在直线中不起作用)
即使在添加JAR时并没有出现任何错误,也最好使用以下命令(来自hive或beeline)来确保它已被添加。
列出jars;
这将显示已添加的所有罐子。