2017-09-01 7 views
1

HDFSに何百万もの小さなファイル(バイナリファイル、イメージ、exeなど)(〜1Mb)を保存したいのですが、私の要件は基本的にはランダムファイルをクエリでき、MapReduceジョブは実行できません。 私の主な問題は、MapReduceマッパーではなく、ネームノードのメモリの問題です。HDFSの小さなファイルデザイン

だから私のオプションは以下のとおりです。

  1. HARファイル - 集約小さなファイルのみそのHARでそれらを保存するより:別の場所にある//パス
  2. シーケンスファイル - 彼らが来るようにそれらを追加し、この私はアスクン思うよHBaseのに小さなファイルを保存すると、Googleの

にいくつかの記事に記載されている別の解決策である - 私はかなり解消ので、それは

  • はHBaseの
  • MapReduceジョブに適していますもし私が逃したものがあれば?大きなAvro/ORC/Parquetファイルにバイナリファイルを添付することで、必要なものを実現できますか?名前で、またはjava/clientプログラムからハッシュでそれらを照会しますか?

    おかげで、

    答えて

    1

    あなたは大きなファイルに複数のファイルを追加する場合は、それぞれの小さなファイルが常駐大きなどのファイルのインデックスを維持する必要があります。これは、HBaseのがあなたのために何をするかは基本的です。データを大容量ファイルにまとめ、HDFSに格納し、高速ランダムアクセスをサポートするためにキーのソートを使用します。 Hbaseがあなたのニーズに合っているかのように私に聞こえます。あなたが何かを手で巻くと、Hbaseがすでにやっている多くの作業をやり直すことになります。

    関連する問題