HDFS にあるファイルを更新しています。
すべてのマップによって行われた変更がファイルにあることを確認するにはどうすればよいですか。つまり、ファイルへの書き込みアクションが同期されている場合です。
HDFS ファイルは変更できません。したがって、それらにのみ追加できます。同時追加の問題については、ここで説明します。複数のクライアントから並行して HDFS ファイルに追加することは可能ですか?
一言で言えば、すべきではありません。
また、「ミスタースピリット」ではないことも指摘します。マッパーからいくつかのデータを収集してまとめたい場合、それはまさにリデューサーの役割です。
Hadoopによると- The Definitive Guide
複数のライター、任意のファイル変更
HDFS 内のファイルは、単一のライターによって書き込まれる場合があります。書き込みは常にファイルの最後で行われます。複数のライターや、ファイル内の任意のオフセットでの変更はサポートされていません。(これらは将来サポートされる可能性がありますが、比較的非効率的である可能性があります。)
Hadoop の性質 (複数のノード/マッパー/リデューサーなど) のため、アプリケーション レベルの同期は事実上不可能です。
Apache HadoopのMapR ディストリビューションは、ランダムな読み取りと書き込みをサポートし、複数のリーダーとライターを同時にサポートします。