3

我有一个 UDF,用于对记录进行自定义处理。在 eval 函数中,我使用第三方 jar 进行处理。我看到了作业 jar 文件,但它不包含此依赖项。有什么方法可以在作业 jar 中包含依赖 jar 吗?(为了测试我在本地模式下运行集群)。

或者我可以使用分布式缓存使依赖 jar 可用于 UDF 吗?

我试过在猪中注册依赖的罐子。对于第一个注册的 jar(所有 udf 都捆绑在这个 jar 中),我没有遇到这些问题。但是对于第二个 jar,当 UDF 尝试从中访问该类时,我遇到了问题。

REGISTER '/home/user/pig/udfrepository/projectUDF.jar'
REGISTER '/home/user/thridpartyjars/xyz.jar';

我在控制台上得到的日志是这样的:

2013-08-11 10:35:02,485 [Thread-14] WARN  org.apache.hadoop.mapred.LocalJobRunner - job_local_0001
java.lang.NoSuchMethodError: org.xyz.abc.convertToOtherFormat(Lorg/DateTimeZone;)Lorg/DateTime;
        at com.myproject.MyUDF.exec(MyUDF.java:70)

对此的任何帮助都将受到高度赞赏。提前致谢。

4

1 回答 1

1

我发现的相同问题已在此处解决并记录在案:

http://hadooptips.wordpress.com/2013/08/13/nosuchmethoderror-while-using-joda-time-2-2-jar-in-pig/

于 2013-08-19T09:58:53.997 回答