我面临一个奇怪的问题。我正在使用最新版本的 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 更多
对此的任何帮助都会很有用。