pig-register目录

kzmpq1sx  于 2021-06-02  发布在  Hadoop
关注(0)|答案(3)|浏览(245)

我在本地模式下运行一个pig脚本,我可以注册包含jar的目录,所有的工作正常:

register '/home/q/2/'

wwile在mapreduce模式下运行完全相同的脚本,出现如下错误:

at org.apache.pig.PigServer.storeEx(PigServer.java:1034)
        ... 15 more
Caused by: java.io.FileNotFoundException: /var/tmp/home/q/2 (Is a directory)

你能告诉我在mapreduce模式下运行时如何注册dir吗?

bqjvbblv

bqjvbblv1#

尝试在本地或mapreduce模式下运行以下命令两次:
注册“/home/q/2/”----//注册目录中的所有jar。
在同一会话中执行两次操作时,您将在第二次注册文件夹时遇到此错误:
错误2999:意外的内部错误
这是因为pig编译器不理解两件事:
答。jars依赖项解析。
b。进口jar的订单。
但是,如果在注册时指定jar的确切路径:
register'/home/q/2/myudfs.jar'

rdlzhqv9

rdlzhqv92#

-//您可以像这样多次注册jar。
只需在本地或map reduce模式下分别在脚本中注册每个jar。
这样做的好处是,在某些情况下,由于依赖项解析问题,jar需要按特定顺序导入。
例如:用于处理json数据的twitter elephant-bird 项目有几个jar依赖项,因此您需要以正确的顺序导入它们,否则您将始终面临此类异常。

goqiplq2

goqiplq23#

您应该执行下列操作之一:
将jar上传到hdfs并从那里注册
如果控制集群,则可以将其添加到标准共享库中

相关问题