我尝试在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) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at 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。
如果我在本地执行此猪,即通过在EMR群集上本地复制猪脚本,它可以正常工作。但是,如果猪脚本源是s3,它会因上述错误而失败。
请告诉我这里有什么问题。
答案 0 :(得分:5)
你在加载任何.jar文件吗? 我只是通过改变
来解决我遇到的确切问题REGISTER /home/hadoop/mongo-java-driver-2.11.1.jar;
到
REGISTER file:/home/hadoop/mongo-java-driver-2.11.1.jar;
以下帖子: https://forums.aws.amazon.com/thread.jspa?messageID=480997
像魅力一样工作!