2016-04-26 4 views
1

基本的に私はHDFSにファイルをアップロードするプログラムを持っています。ファイルは、タスクの実行の終了時にアップロードされます。それで、何が起こるのかということは、(実行終了時に)同時にHDFSにファイルをアップロードし、競合を引き起こす多くのタスクが同時に発生するということです。ファイルサイズはHDFSブロック(< 64 MB)未満です。 HDFSファイルをあらかじめ作成するほうが速いのですが(タスクが競合を避けるために何らかの処理をしている間に)、処理が終了したら、ローカルファイルの内容を文字列で読み込み、追加するだけですその文字列を既に作成済みのHDFSファイルにコピーします。ファイルをHDFSにアップロードしたり、HDFSファイルを直接作成したり書き込んだりする方が速いですか?

基本的に私の質問は、HDFSファイルを作成するか、すでに作成されたHDFSファイルに文字列を追加することで、オーバーヘッドが増えますか?

+0

私はそれを試してみるだけです。私はそれが難しいとは思わない –

+0

真実、しかし私はちょうどいくつかの意見を求めた。 – pythonic

+0

詳細をご記入ください。 「文字列内のそのようなファイルの内容を読み取るだけで、HDFSファイルを作成し、その文字列をHDFSファイルに直接書き込む方が速いのであれば、どういう意味ですか? 「私はHDFSにファイルをアップロードするプログラムを持っています」 –

答えて

0

これをテストしたところ、HDFSファイルの作成には、追加するのとほぼ同じ時間がかかることに注意してください。これは、書き込まれたコンテンツがHDFSブロックサイズより小さいことを前提としています。 HDFSファイルをアップロードすると、HDFSファイルを作成して追加するのと同じ結果になるので、追加するだけで2倍の時間がかかります。

関連する問題