5

Hadoop クラスターで奇妙な問題が発生しています。一部のジョブがファイルが見つからないという例外で失敗することに気付きました [以下を参照]。基本的に、「attempt_*」ディレクトリ内のファイルとディレクトリ自体は、ホスト上でタスクがまだ実行されている間に削除されます。一部の Hadoop ドキュメントを見ると、KillJobAction を取得するとジョブ ディレクトリが消去されることがわかりますが、ジョブがまだ実行されている間に消去される理由がわかりません。

私の質問は、ジョブの実行中に何が削除されるのでしょうか? これをデバッグする方法についての考えや指針は役に立ちます。

ありがとう!

java.io.FileNotFoundException: <dir>/hadoop/mapred/local_data/taskTracker/<user>/jobcache/job_201211030344_15383/attempt_201211030344_15383_m_000169_0/output/spill29.out (Permission denied)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at org.apache.hadoop.fs.RawLocalFileSystem$TrackingFileInputStream.<init>(RawLocalFileSystem.java:71)
    at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileInputStream.<init>(RawLocalFileSystem.java:107)
    at org.apache.hadoop.fs.RawLocalFileSystem.open(RawLocalFileSystem.java:177)
    at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:400)
    at org.apache.hadoop.mapred.Merger$Segment.init(Merger.java:205)
    at org.apache.hadoop.mapred.Merger$Segment.access$100(Merger.java:165)
    at org.apache.hadoop.mapred.Merger$MergeQueue.merge(Merger.java:418)
    at org.apache.hadoop.mapred.Merger$MergeQueue.merge(Merger.java:381)
    at org.apache.hadoop.mapred.Merger.merge(Merger.java:77)
    at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.mergeParts(MapTask.java:1692)
    at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.flush(MapTask.java:1322)
    at org.apache.hadoop.mapred.MapTask$NewOutputCollector.close(MapTask.java:698)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:765)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:369)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:259)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
    at org.apache.hadoop.mapred.Child.main(Child.java:253)
4

1 に答える 1

0

同様のエラーが発生し、hadoop プログラムがファイルを作成またはアクセスできないために、このアクセス許可エラーが発生したことがわかりました。

ファイルは、hdfs 内または任意のローカル ファイル システム上に作成されます。それらがローカル ファイル システム上にある場合は、そのフォルダーにアクセス許可を設定してみてください。hdfs フォルダーにある場合は、そのフォルダーにアクセス許可を設定してみてください。

ubuntuで実行している場合

走ってみてください

chmod -R a=rwx //hadoop/mapred/local_data/taskTracker//jobcache/job_201211030344_15383/attempt_201211030344_15383_m_000169_0/output/

于 2013-04-17T04:19:38.770 に答える