0

我面临一个奇怪的问题。我正在使用最新版本的 cygwin 在 windows7/64 位机器上运行 PIG 0.11。

我是一个博客,我想按用户名对其进行排序,以便将同一用户的所有用户活动集中在一起以供下一行处理。

我在 cygwin 控制台上启动 commandprompt -> cygwin.bat -> 转到 D:/ -> pig 并在 grunt shall (本地模式)上键入以下脚本。(注意我已经正确设置了 PIG_HOME、PIG_CLASSPATH)。

脚本是:

USERACTIVITIES = LOAD '/D:/path/of/logs/useractivities' USING org.apache.pig.piggybank.storage.CSVExcelStorage(',') AS (datetimeUnProcessed:chararray, username:chararray, request:chararray);
 USERACTIVITIES_ORDERED = ORDER USERACTIVITIES by username;
STORE USERACTIVITIES_ORDERED INTO '/D:/readyfornextinput/useractivities' USING org.apache.pig.piggybank.storage.CSVExcelStorage(',');

当我说明 USERACTIVITIES_ORDERED 时,我看到它进展顺利。但是当我进行存储/转储时,我面临着更棘手的问题。

它失败说: java.lang.RuntimeException: org.apache.hadoop.mapreduce.lib.input.InvalidInputException: 输入路径不存在:file:/D:/pigsample_1749383998_1377684507424

当我尝试搜索此 pigsample_number 文件时,我可以在以下位置找到它:D:/tmp//mapred/local/localRunner

我不确定它是如何发生的。我不确定它的 windows/cygwin 相关问题或是否有人在 Linux 上也看到了这个问题。

作为参考,您可以在此处找到附加的堆栈跟踪:

2013-08-28 15:38:28,863 [Thread-46] 警告 org.apache.hadoop.mapred.LocalJobRunner - job_local_0004 java.lang.RuntimeException: org.apache.hadoop.mapreduce.lib.input.InvalidInputException: 输入路径确实不存在:文件:/D:/pigsample_1749383998_1377684507424 在 org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.WeightedRangePartitioner.setConf(WeightedRangePartitioner.java:157) 在 org.apache.hadoop.util.ReflectionUtils.setConf( ReflectionUtils.java:62) 在 org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117) 在 org.apache.hadoop.mapred.MapTask$NewOutputCollector.(MapTask.java:677) 在 org.apache。 hadoop.mapred.MapTask.runNewMapper(MapTask.java:756) 在 org.apache.hadoop.mapred.MapTask.run(MapTask.java:370) 在 org.apache.hadoop。mapred.LocalJobRunner$Job.run(LocalJobRunner.java:214) 原因:org.apache.hadoop.mapreduce.lib.input.InvalidInputException: 输入路径不存在:file:/D:/pigsample_1288777582_1377684802262 at org.apache.hadoop .mapreduce.lib.input.FileInputFormat.listStatus(FileInputFormat.java:235) 在 org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigFileInputFormat.listStatus(PigFileInputFormat.java:37) 在 org.apache.hadoop.mapreduce .lib.input.FileInputFormat.getSplits(FileInputFormat.java:252) 在 org.apache.pig.impl.io.ReadToEndLoader.init(ReadToEndLoader.java:190) 在 org.apache.pig.impl.io.ReadToEndLoader.( ReadToEndLoader.java:126) 在 org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.partitioners.WeightedRangePartitioner.setConf(WeightedRangePartitioner.java:131) ... 6 更多

对此的任何帮助都会很有用。

4

1 回答 1

0

看起来这只能在 cygwin 环境中重现。我在这里记录了根本原因和解决方案

于 2013-09-07T16:33:51.720 回答