EMR - 从S3运行Pig Script的问题

时间:2014-07-18 17:24:05

标签: hadoop amazon-s3 apache-pig amazon-emr

我尝试在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,它会因上述错误而失败。

请告诉我这里有什么问题。

1 个答案:

答案 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

像魅力一样工作!