2016-11-14 6 views
1

Hbaseでは、hbase.hregion.max.filesizeを10GBに設定しました。単一行が10GBのサイズを超える場合、Hbase分割は行キーに基づいて行われるため、行は2つの領域に分割されませんHbaseの単一行がhbase.hregion.max.filesizeを超えた場合のパフォーマンスの問題

たとえば、1000個の列を持ち、各列が25MB〜 40 MB。したがって、定義された領域サイズを超える可能性があります。この場合、行キーのみを使用してデータを読み取ったり、列修飾子を使用して行キーを使用してデータを読み取っているとき、パフォーマンスにどのような影響がありますか?

答えて

2

最初のことは、Hbaseは大量のデータ10GBを1行に格納することではないということです。

私はそれがパフォーマンスに悪影響を与えるだろう

(ちょうどそれを保存することを考えて)あなたが一列に10ギガバイトを保存していない願っています。パーティション化された構造のhdfsにこのような多くのデータを格納するような他の方法も考えています。一般的に

、これらはtips for generally applicable batch clients like Mapreduce Hbase jobs

Scan scan = new Scan(); 
scan.setCaching(500); //1 is the default in Scan, which will be bad for MapReduce jobs 
scan.setCacheBlocks(false); // don't set to true for MR jobs 

はHBaseの中の単一の行のPerformance

+0

最適なサイズで見ることができます。それに基づいて私は行のキーを設計します。また、私はこれらの情報を得ることができますか? – Roshan

+0

AFAIK、最適なサイズはありませんが、1行あたり10メガバイトまでのプロトメントメッセージを保存し、mapreduceで処理しましたが、キャッシュサイズ(プリフェッチされたレコード数)を500から200に減らす必要があります。 GBsでないmbs –

関連する問題