我正在aws的emr上尝试pig命令。但即使是很小的命令也不能像我预期的那样工作。我所做的就是跟随。
将以下6行另存为 ~/a.csv
.
1,2,3
4,2,1
8,3,4
4,3,3
7,2,5
8,4,3
启动清管器
加载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个元组,这些元组在.csv中描述。转储命令很多信息行和错误行。错误行如下。
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的描述。)错误消息似乎表明load操作符也失败了。
我不知道为什么连垃圾处理操作员都失败了。你能给我一些建议吗?
笔记
我还在.csv中使用tab而不是逗号和execute 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"
2条答案
按热度按时间hkmswyz61#
我也遇到了同样的问题。你可以试着
su root
使用root用户,然后./bin/pig
在PIG_HOME
以mapreduce模式启动清管器。另一方面,您还可以通过sudo ./bin/pig
在PIG_HOME
开始养Pig,但你必须出口JAVA_HOME
以及HADOOP_HOME
在./bin/pig
文件。cqoc49vn2#
如果你想使用你的本地文件系统,你应该在下面的步骤2中启动你的pig
如果你开始的时候
bin/pig
将在dfs中搜索文件。所以你才会出错Failed to read data from "hdfs://ip-x.eu-central-1.compute.internal:8020/user/hadoop/a.csv"