2016-06-24 1 views
2

私は、HDFSのブロックサイズが64 MBであることを知っています。しかし、私は新しいHDFSファイルを作成し、それにデータを書き続けると言いましょう。しかし、一度に4KBというわずかなデータを書きます。それは非常に非効率的でしょうか?最終的に私のファイルは1GBのサイズになる可能性がありますが、データを少しずつ書き込んでいくと、そのようなファイルへの書き込みは効率的ではありませんか?つまり、ファイルに書き込む前にデータをバッファリングすることが重要です。この場合、たとえば、64 MBのサイズに達するまでバッファにデータを蓄積した後、HDFSファイルに書き込んでそのバッファをクリアした後にその手順を繰り返すことができます。いくつかの手順でHDFSファイルに書き込むのが効率的ですか?

+0

ファイルを書き込むためにどの方法を使用していますか? –

+1

はい、「チャンク」で書き出すためにバッファ(または何でも)を使用してください。 –

+0

私は、HDFSへの書き込みにApacheのライブラリを使用しています。 – pythonic

答えて

0

最初にHDFSのブロックサイズはあなた次第ですが、デフォルトは設定可能で、HDFSに配置するときに、指定されたファイルに対して異なるブロックサイズを設定することができます。

HDFSにデータを保存するときにデータが手元にない場合は、Flumeを使用してデータジェネレータのソースを設定し、HDFSのファイルにシンクを設定し、細部に苦しんでいる。データがデータベースにある場合は、Sqoopにも切り替えることができます。

それ以外の場合は、実験を行い、パフォーマンステストを行い、どのアプローチが良いかを確認します。データの生成方法と使用方法に大きく依存します。

+0

@pitfa:彼はデータの摂取については質問していないと思います。提案された水路またはスクープアプローチが正しいかもしれません。 –

関連する問題