sql >> データベース >  >> NoSQL >> HBase

HBaseパフォーマンスCDH5(HBase1)とCDH6(HBase2)

    CDH5からCDH6にアップグレードするHBaseのお客様は、HBase1からHBase2に移行するHBaseアップグレードも取得します。パフォーマンスは、お客様が考慮する重要な側面です。 YCSBワークロードを使用してCDH5HBase1とCDH6HBase2のパフォーマンスを測定し、インプレースアップグレード(ハー​​ドウェアに変更なし)を行っているお客様に対するアップグレードのパフォーマンスへの影響を理解しました。

    YCSBについて

    テストには、 Yahoo!クラウドサービングベンチマーク (YCSB)。 YCSBは、コンピュータープログラムの取得および保守機能を評価するためのオープンソース仕様およびプログラムスイートです。これは、NoSQLデータベース管理システムの相対的なパフォーマンスを比較するためによく使用されます。

    オリジナルのベンチマークは、Yahoo!の研究部門の労働者によって開発されました。 2010年にリリースした人。

    YCSBの詳細 https://github.com/brianfrankcooper/YCSB

    テスト環境では、YCSB @ 1TBデータスケールが使用され、実行ワークロードにはYCSBデフォルトワークロードとカスタマイズされたワークロードが含まれていました。

    使用したYCSBテストワークロード:

    • ワークロードA(読み取り+更新) :アプリケーション例:ユーザーセッションでの最近のアクションを記録するセッションストア
      • 50%読む
      • 50%更新
    • ワークロードC(読み取り専用) :アプリケーション例:プロファイルが他の場所(Hadoopなど)で構築されているユーザープロファイルキャッシュを読み取ります
      • 100%読む
    • ワークロードF(読み取り+変更+書き込み) :アプリケーション例:ユーザーデータベース。ユーザーがユーザーレコードを読み取って変更したり、ユーザーアクティビティを記録したりします
      • 50%読む
      • 25%更新
      • 25%READ-MODIFY-WRITE
    • ClouderaカスタムYCSBワークロードの更新のみ :アプリケーション例:一括更新
      • 100%UPDATE操作

    YCSBワークロードの詳細については、https://github.com/brianfrankcooper/YCSB/wiki/Core-Workloadsをご覧ください

    テスト方法

    YCSBデータセットに1000,000,000レコードをロードし、各レコードのサイズは1KBで、合計1TBのデータを作成します。ロード後、すべての圧縮操作が完了するのを待ってから、ワークロードテストを開始します。テストされた各ワークロードは、それぞれ15分間で3回実行され、スループットは * 測定。平均数は、最終的な数を生成するために3つのテストから取得されます。

    * スループット(ops / sec)=1秒あたりの操作数

    YCSBを使用したCDH5HBase1とCDH6HBase2のスループット比較

    カスタム更新のみのスループット

    更新のみ ユースケース:一括更新
    CDH6 HBase2スループットはCDH5HBase1より50%高い

    YCSBワークロードAスループット

    大量の更新。 ユースケース:セッションストア、最近のアクションの記録
    CDH6 HBase2スループットはHBase1を使用したCDH5より6%少ない

    YCSBワークロードCスループット

    読み取り専用。 ユースケース:ユーザープロファイルキャッシュ、ニュースフィードキャッシュ
    CDH6 HBase2スループットはCDH5HBase1より5%少ない

    YCSBワークロードFスループット

    読み取り-変更-書き込み。 ユースケース:アクティビティストア、ユーザーデータベース
    CDH5HBase1に非常に近いCDH6HBase2スループット

    テスト結果の概要

    カスタムアップデートのみ 作業負荷 HBase2CDH6アップデートのみのワークロードのパフォーマンスが50%向上 HBase1CDH5より

    YCSBワークロードFワークロード: CDH6YCSBワークロードFのワークロード操作とスループットは非常に類似していた CDH5HBase1へ

    YCSBワークロードAおよびYCSBワークロードCワークロード: CDH6 YCSBワークロードCは読み取り専用で、YCSBワークロードAは約 5%少ない CDH5HBase1よりも操作とスループット

    CDHバージョンの比較

    CDH6バージョン:Cloudera Enterprise 6.2

    CDH5バージョン:Cloudera Enterprise 5.16.2

    Java VM名:Java HotSpot(TM)64ビットサーバーVM

    Javaバージョン:1.8.0_141

    テスト環境

    使用されるクラスター: 6ノードクラスター
    ノードの説明: Dell PowerEdge R430、20c / 40t Xenon e5-2630 v4 @ 2.2Ghz、128GB RAM、4-2TBディスク

    テストセットアップ

    • YCSBバージョン:0.14.0
    • YCSBバインディングバージョンhbase20
    • YCSBテーブル@1TBスケール
    • WAL構成
      • WALパイプラインのRegionServerあたりの数( wal.regiongrouping.numgroups )1に設定
      • マルチウォルマート: wal.provider 複数のHDFSWALに設定
        • 注->ここでは、WALパイプラインとして使用される単一のWALが1に設定されています
      • 非同期WAL: region.replica.replication.enabled falseに設定
    • セキュリティ: 構成なし(Kerberosなし)
    • リージョンサーバー
      • YCSBテーブル250のリージョン数、5+1ノードクラスターのリージョンサーバーあたり約50リージョン
      • リージョンサーバーの平均サイズ290G
      • 地域ごとのデータ〜6G
    • 3GBのキャッシュサイズ制限で使用されるLruBlockCacheを備えたL1キャッシュのみ

    私たちのテスト(上記の結果)に基づくと、CDH 5.xから6.xへのアップグレードを検討しているお客様は、現在得られているものと比較して、一括更新のパフォーマンスが大幅に向上し、他のワークロードのパフォーマンスもほぼ同じになると期待する必要があります。

    ClouderaオペレーショナルDBの詳細はこちら


    1. MongoDBで、配列の一部のみを返す方法は?

    2. マングースのユニークなインデックスが機能していません!

    3. MongoDBとNodejsを使用した日付の挿入とクエリ

    4. ドキュメントデータベース:冗長データ、参照など(特にMongoDB)