错误2997:遇到ioexception文件foo.py不存在

lbsnaicq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(394)

我的Pig脚本有以下几行

  1. register 'foo.py' USING jython as foo;

文件foo.py存在于hdfs根目录中。
但是当我运行我的代码时,我得到了一个错误

  1. ERROR 2997: Encountered IOException. File foo.py does not exist

我在谷歌上找到了这个线索
在pig中注册python udf时遇到ioexception。文件helloworld.py不存在
这个解决方案似乎意味着foo.py必须复制到本地文件系统才能正常工作。但这不是我的选择。
我想在hdfs上复制foo.py,然后从pig脚本中使用它。
我已经试过了 register './foo.py' USING jython as foo; 我可以确认foo.py存在于根hdfs目录中。
我还尝试将foo.py文件的权限更改为 rwxrwxrwx 但是Pig不可能找到那个文件。
编辑::因为我正在使用hortonworks小酒馆,我也试图注册我的自定义项在自定义项选项卡。但即使在注册后仍然会出现相同的错误。
edit2::我还复制了 /user/admin 目录并给出 rwxrwxrwx 权限。但还是找不到py文件。
edit3::也尝试过 register 'hdfs://foo.py' USING jython as util; 但还是找不到。

jckbn6z7

jckbn6z71#

如果它在根里,你想 /foo.py 为了明确从hdfs加载,需要三个斜杠 hdfs:///foo.py (因为完整的语法是 hdfs://namenode:port/fileURI )
使用 ./foo.py 表示运行该命令的用户的hdfs用户文件夹的根

相关问题