カスケードで非常に大きな行を含むファイルをロードするために、カスケーディングで TextLine を使用しています。行は非常に長く、平均で約 30Mb で、それより長いものもあります。ジョブをローカルで実行してテストすると正常に動作しますが、クラスターで実行すると、一定期間の集中的なクランチの後に失敗します。次のようなエラーが発生します。
cascading.tuple.TupleException: unable to read from input identifier: maprfs:/xxx/xxx/xxx/part-00001
at cascading.tuple.TupleEntrySchemeIterator.hasNext(TupleEntrySchemeIterator.java:127)
at cascading.flow.stream.SourceStage.map(SourceStage.java:76)
at cascading.flow.stream.SourceStage.run(SourceStage.java:58)
at cascading.flow.hadoop.FlowMapper.run(FlowMapper.java:127)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:443)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:353)
at org.apache.hadoop.mapred.Child$4.run(Child.java:282)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1122)
at org.apache.hadoop.mapred.Child.main(Child.java:271)
また、古いファイル ハンドルについて不平を言うこともあります。読み込もうとしているファイルは間違いなくそこにあります。誰か助けてくれませんか?