conext.writeがhadoopレデューサーでどのように機能するかについて混乱しています。すべてがHDFSで同じファイルに書き込んでいる場合、Hadoopレデューサー(複数のレデューサーがある場合)にロックの問題がないのはなぜですか?
通常、Hadoopマッパー/リデューサーで同じファイルに自分で書き込むと、同じファイルに同時に書き込むことができないロックエラーが発生します。
Map Reduce プログラムがマルチノード クラスタで実行される場合、各ノードで実行される固有の Map および Reduce プログラムがあります。
Map Reduce の Reduce は、ファイル自体に直接書き込みません。このタスクは、データのシンクを担当する OutputFormat に委任されます。ファイル、データベーステーブル、またはその他の場所にある可能性があります。FileOutputFormat は、Hadoop Distributed File System (HDFS) 内の場所にシンクします。DBOutputFormat はデータベース テーブルにシンクします (この投稿を読んでください)。
ファイル ロックに関する質問については、 Yahoo Developer Networkのこの投稿をご覧ください。