を報告できませんでした。私はいくつかのXMLファイルをマッピングしており、すべての要素(ID>タグ> )からIDをフィルタリングしています。私はIDの特定のセットにジョブを制限したいので、私は大きなファイル(2.7ギガバイトで約250万行、IDとしてちょうど整数ですべての行)を読み込みます。だから私はDistributedCacheを使用し、セットアップ()でファイルを解析 - BufferedReaderを持つマッパーの方法とHashSetのにIDを保存します。私は仕事を開始するときに任意のマップジョブが実行される前にHadoop DistributedCacheは、hadoopジョブでステータス
は今、私は数え切れないほどの
Task attempt_201201112322_0110_m_000000_1 failed to report status. Killing!
を取得します。
クラスタは40個のノードで構成され、DistributedCacheのファイルは、ジョブのすべてのタスクが実行される前に、スレーブノードにコピーされるので、私は障害が大きいHashSetのによって引き起こされると仮定する。私はすでに2000年代にmapred.task.timeout
を増やしました。もちろん私は時間をさらに増やすことができましたが、実際にはこの期間で十分でしょうか?
DistributedCacheは「大容量の読み取り専用ファイルを効率的に配布する」ために使用されているため、ここで何が失敗するのか疑問に思っていましたし、関連するIDをすべてのマップジョブに渡す別の方法があるでしょうか?
おかげで、 スタン