【发布时间】:2014-09-09 22:08:08
【问题描述】:
我尝试在 EMR 上运行 Pig 脚本,例如:
pig -f s3://bucket-name/loadData.pig
但它失败并出现错误:
错误 2999:意外的内部错误。空
java.lang.NullPointerException 在 org.apache.pig.impl.io.FileLocalizer.fetchFilesInternal(FileLocalizer.java:778) 在 org.apache.pig.impl.io.FileLocalizer.fetchFiles(FileLocalizer.java:746) 在 org.apache.pig.PigServer.registerJar(PigServer.java:458) 在 org.apache.pig.tools.grunt.GruntParser.processRegister(GruntParser.java:433) 在 org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:445) 在 org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:194) 在 org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:170) 在 org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:84) 在 org.apache.pig.Main.run(Main.java:479) 在 org.apache.pig.Main.main(Main.java:159) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.apache.hadoop.util.RunJar.main(RunJar.java:187)
loadData.pig 看起来像:
A = load '/ajasing/input/input.txt' USING PigStorage('\t', '-noschema');
store A into '/ajasing/output1444/input1444.txt';
我正在运行 Pig 版本 0.11.1、hadoop 版本 1.0.3 和 AMI 版本 2.4.6。
如果我在本地执行此 pig,即通过在 EMR 集群上本地复制 pig 脚本,它可以正常工作。但是,如果 pig 脚本源是 s3,它会因上述错误而失败。
请告诉我这里有什么问题。
【问题讨论】:
-
只是补充一下,我尝试像 pig -f s3n://ajasing/script/loadData.pig 一样运行。但同样的问题。
-
尝试
cd-ing 到您的s3存储桶,然后运行$ pig -f ./loadData.pig -
我不明白我们如何在 s3 存储桶中进行 cd-ing。
标签: hadoop amazon-s3 apache-pig amazon-emr