3

最近、hadoop バルク ロードを使用してデータを hbase に入れます。まず、HDFS API を呼び出して、hadoop hdfs のファイルにデータを書き込みます。合計 7000,000 行のデータで、サイズは 503MB です。次に、org.apache.hadoop.hbase.mapreduce.ImportTsvorg.apache.hadoop.hbase.mapreduce.LoadIncrementalHFilesを使用してデータを hbase に入れます。

私が行ったほとんどのインポート作業は、バルクロード ツールを使用してデータを hbase に入れることでした。バルクロードが完了した後、hbase テーブルが 1.96GB であることがわかりました。hdfs のレプリケーションは 1 です。理由はわかりません。

4

1 に答える 1

3

列修飾子などの名前を保存する必要があるため、データの保存には少しオーバーヘッドがありますが、4 倍のオーバーヘッドはありません。私にはいくつかのアイデアがありますが、データの性質と、おそらくテーブルの統計について、より詳細な情報を聞くことは間違いありません。

  • テーブルで圧縮を有効にしていますか? データが HDFS で圧縮されていたが、それを読み込んだ後に圧縮されていない場合、問題が発生する可能性があります。
  • 何らかの理由で HBase がレプリケーション ファクターを尊重していない可能性があります。a を行って、hadoop fs -dus /path/to/hbase/table/dataそれが何を返すかを確認してください。
  • 列修飾子はかなり大きいですか? たとえば、colfam1:abcは非常に小さく、多くのスペースを占有しませんがcolfam1:abcdefghijklmnopqrstuvwxyz、物事の壮大な計画ではかなりのスペースを占有します!
于 2012-12-13T21:49:36.880 に答える