我在AWS的EMR上尝试Pig命令。但即便是小命令也无法按预期工作。我做的是跟随。
将以下6行保存为~/a.csv
。
1,2,3
4,2,1
8,3,4
4,3,3
7,2,5
8,4,3
Start Pig
加载csv文件。
grunt> A = load './a.csv' using PigStorage(',');
16/01/06 13:09:09 INFO Configuration.deprecation: fs.default.name is deprecated. Instead, use fs.defaultFS
转储变量A.
grunt> dump A;
但是这个命令失败了。我希望这个命令产生6个元组,这些元组在a.csv中描述。转储命令很多INFO行和ERROR行。 ERROR系列如下。
91711 [main] ERROR org.apache.pig.tools.pigstats.PigStats - ERROR 0: java.lang.IllegalStateException: Job in state DEFINE instead of RUNNING
16/01/06 13:10:08 ERROR pigstats.PigStats: ERROR 0: java.lang.IllegalStateException: Job in state DEFINE instead of RUNNING
91711 [main] ERROR org.apache.pig.tools.pigstats.mapreduce.MRPigStatsUtil - 1 map reduce job(s) failed!
16/01/06 13:10:08 ERROR mapreduce.MRPigStatsUtil: 1 map reduce job(s) failed!
[...skipped...]
Input(s):
Failed to read data from "hdfs://ip-xxxx.eu-central-1.compute.internal:8020/user/hadoop/a.csv"
Output(s):
Failed to produce result in "hdfs://ip-xxxx.eu-central-1.compute.internal:8020/tmp/temp-718505580/tmp344967938"
[...skipped...]
91718 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1066: Unable to open iterator for alias A. Backend error : java.lang.IllegalStateException: Job in state DEFINE instead of RUNNING
16/01/06 13:10:08 ERROR grunt.Grunt: ERROR 1066: Unable to open iterator for alias A. Backend error : java.lang.IllegalStateException: Job in state DEFINE instead of RUNNING
(我已更改类似IP的描述。)错误消息似乎表示加载运算符也失败。
我不知道为什么转储运算符失败了。你能给我一些建议吗?
请注意
A = load './a-tab.csv';
,但它没有帮助。 $ pig -x local
- > A = load 'a.csv' using PigStorage(',');
- > dump A;
。然后
Input(s):
Failed to read data from "file:///home/hadoop/a.csv"
如果我使用完整路径,即A = load '/home/hadoop/a.csv' using PigStorage(',');
,那么我得到
Input(s):
Failed to read data from "/home/hadoop/a.csv"
答案 0 :(得分:0)
如果您想使用本地文件系统,您必须在步骤2中启动您的猪,如下所示
bin/pig -x local
如果您从bin/pig
开始,将在DFS中搜索文件。这就是您收到错误Failed to read data from "hdfs://ip-xxxx.eu-central-1.compute.internal:8020/user/hadoop/a.csv"
答案 1 :(得分:0)
我遇到了同样的问题。您可以尝试su root
使用root用户,然后./bin/pig
PIG_HOME
使用mapreduce模式启动pig。另一方面,您也可以在sudo ./bin/pig
PIG_HOME
处使用当前用户开始查看,但您必须在JAVA_HOME
中导出HADOOP_HOME
和./bin/pig
文件。