0

fe 作成ファイル 20 バイト。
最初のプロセスは 0 から 4 まで、
2 番目のプロセスは 5 から 9 まで
などを書き込みます。

MapReduce を使用して大きなファイルを並行して作成するには、これが必要です。

ありがとう。

PS たぶんまだ実装されていませんが、一般的には可能です - どこを掘るべきか教えてください。

4

2 に答える 2

3

このファイルを作成した後、このファイルで何をする予定か説明できますか?

HDFS から取得して使用する必要がある場合は、Hadoop M/R に個別のファイルを作成させてから、コマンドなどhadoop fs -cat /path/to/output/part* > localfileを使用してパーツを 1 つのファイルに結合し、ローカル ファイル システムに保存することができます。

それ以外の場合、同じファイルに対して複数のライターを開く方法はありません。HDFS への読み取りと書き込みはストリーム ベースであり、複数のリーダーを開くことはできますが (異なるブロックを読み取る可能性があります)、複数の書き込みはできません。

Web ダウンローダーは、複数のスレッドでRange HTTP ヘッダーを使用してファイルの一部を要求し、後で部分をマージする前に tmp ファイルを使用するか (Thomas Jungblut が示唆するように)、ランダム IO を利用して、ダウンロードしたファイルをバッファリングすることができます。メモリ内のパーツを正しい場所の出力ファイルに書き出す前に。残念ながら、Hadoop HDFS でランダム出力を実行する機能はありません。

于 2012-08-09T22:59:32.297 に答える