21

基本的に、質問全体がタイトルにあります。複数のコンピューターから同時に HDFS にあるファイルに追加できるかどうか疑問に思っていますか? 複数のプロセスによって常に生成されるイベントのストリームを保存するようなもの。順序は重要ではありません。

GFS がそのような追加機能をサポートしているという Google の技術プレゼンテーションの 1 つを聞いたことを思い出しますが、HDFS (通常のファイルの append() または SequenceFile を使用) でいくつかの限定的なテストを試みてもうまくいかないようです。

ありがとう、

4

2 に答える 2

12

これは HDFS では不可能だと思います。レコードの順序は気にしませんが、ファイル内のバイトの順序は気にします。ライター A が部分的なレコードを書き込み、その後ライター B によって破損されることは望ましくありません。これは、HDFS が単独で解決するのが難しい問題であるため、そうではありません。

ライターごとにファイルを作成します。このデータを読み取る必要がある MapReduce ワーカーにすべてのファイルを渡します。これははるかに単純で、HDFS と Hadoop の設計に適合します。非 MapReduce コードがこのデータを 1 つのストリームとして読み取る必要がある場合は、各ファイルを順番にストリーミングするか、非常に高速な MapReduce ジョブを記述してファイルを統合します。

于 2011-06-17T20:31:24.413 に答える