HBase Javaクライアント/ Thrift/RESTインターフェイスでいくつかのパフォーマンステストを実行しています。 私は500Kの行を持つ "航空会社"と呼ばれるテーブルを持っています。 私は4つの異なるJavaプログラムを通してテーブルからすべての500K行をフェッチしています。 (JAVAクライアント、Thrift、Thrift2、RESTを使用)なぜHBase JavaクライアントがREST/Thriftに比べて遅いのですか
以下は、さまざまなフェッチサイズのパフォーマンス番号です。 これらすべてのバッチサイズは、私はそれを見ることができた100000
[Table which shows the performance numbers. All times are in ms][1]
に設定されているため、我々は、RESTの場合にフェッチサイズを大きくすると、パフォーマンスの改善があり、倹約、そして倹約2。
Java APIでは、フェッチサイズに関係なく、一貫したパフォーマンスが見られます。 フェッチサイズがJAVAクライアントに影響しないのはなぜですか?
誰かが、この中で私を助けることができる - {プロセス行 }ここで
は私のJavaプログラムの
Table table = conn.getTable(TableName.valueOf("Airline"));
Scan scan = new Scan();
ResultScanner scanner = table.getScanner(scan);
for (Result[] result = scanner.next(fetchSize); result.length != 0; result = scanner.next(fetchSize))
の抜粋です。私は、JAVAクライアントを介したデータフェッチに間違ったメソッド/クラスを使用していますか?
あなたの質問には、違いが生じる理由を推測するための情報が少なすぎます。あなたが使用しているHBaseのバージョンは何ですか?デフォルトの設定を使用していますか、またはカスタム設定がありますか?スキャナのキャッシングを設定していますか? –