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

クラウド環境のSSDでのApacheHBaseとApacheCassandraのベンチマーク

    このブログ投稿は、Clouderaとの統合前にHortonworks.comで公開されていました。一部のリンク、リソース、または参照は、正確でなくなる可能性があります。

    概要

    クラウド内の最新のハードウェアに導入されるワークロードが増えるにつれ、最高のハードウェアを活用できる最高のデータベースを選択する方法を理解することが重要です。 Amazonは、SSD(ソリッドステートドライブ)が直接接続されたインスタンスを導入しました。 ApacheHBaseとApacheCassandraはどちらも、人気のあるKey-Valueデータベースです。このベンチマークでは、クラウド環境で直接接続されたSSDをどのように活用するかについて詳しく学びたいと考えています。

    ベンチマークの設計

    ベンチマークは、ApacheHBaseとApacheCassandraを最適な本番環境で実行するために設計されています。これは、SSDが直接接続されたハイIO操作用に調整されたマシンを使用することを意味します。 SSDにログ先行書き込み/コミットログとデータストレージを配置しました。以前は、多くのベンチマークで両方のソリューションが線形にスケーリングできることがすでに確認されているため、スケーリングテストはこのベンチマークの範囲外です。

    結果

    分析

    ベンチマーク全体を通じて、読み取りが多いワークロードでは、HBaseがCassandraを常に上回っています。これは、検索エンジン、高頻度トランザクションアプリケーション、ログデータ分析、メッセージングアプリなどのHBaseの主要なユースケースとよく一致します。 HBaseは、巨大な2次元テーブルのスキャンが必要なワークロードで優れています。一方、Cassandraは、書き込みの多いワークロードと一貫性のあるトレードオフでうまく機能しました。したがって、長期にわたる一貫性が許容できる場合は、分析データ収集またはセンサーデータ収集に適しています。

    ソリューションを選択する際に考慮すべきもう1つの要素は、データを分析するための対応するツールセットがあるかどうかです。 HBaseの場合、Apache Hadoopプラットフォーム上に構築されており、Map Reduceと、ApacheHiveやApacheSparkなどの他のソリューションへのさまざまなコネクタをサポートして、より大規模な集計クエリと複雑な分析を可能にします。

    テストセットアップ

    マシン:

    テストクラスターは5台のマシンで構成されています。マシンの詳細:

    AWS I3.xlarge

    OSを実行するための60GBGP2

    直接接続されたNVMeストレージ、0.95TB

    4 vCPU、各vCPU(仮想CPU)は、2.3GHzで動作するIntelE5-2686 v4(Broadwell)プロセッサ上のハードウェアハイパースレッドです。

    30.5GB RAM

    ノイズの多いネイバーの問題を最小限に抑えるために、AWS専用インスタンスでテストを実行しました。

    ベンチマークソフトウェア:

    テストデータセット:YCSBを介して生成された1TB

    テストスイート:https://github.com/brianfrankcooper/YCSB

    テストスクリプト:https://github.com/2bethere/hbase-cassandra-bench

    ソフトウェアと環境:

    HDP 2.6.1
    DSE 5.0.8
    CentOS 7
    Java 8

    ハードウェアを最大限に活用するために、HBaseのRegionServerあたりのハンドラー数を120に変更しました。他のすべての設定はデフォルトのままです。構成リストの完全なセットは、この投稿の最後にあります。

    導入中は、http://docs.datastax.com/en/dse/5.1/dse-admin/datastax_enterprise/config/configRecommendedSettings.html

    に掲載されているCassandra最適化ガイドにも従いました。

    YCSBクライアントは5つのノードのそれぞれに配置され、同時に実行されて負荷が生成されます。データセットの生成中に、スレッド数を40に減らしました。

    テスト方法

    データセットの分布がベンチマークごとに異なるため、ワークロードごとに40スレッドでデータセットをロードしています。ロード後、すべての圧縮操作が完了するのを待ってから、ワークロードテストを開始します。各ワークロードは、5,000,000回の操作で3回実行されました。 3つのテストから平均数を取得して、最終的な数を算出します。

    YCSBについて

    YCSB、またはYahoo! Cloud Serving Benchmarkは、一般的に使用されるベンチマークツールです。さまざまなソリューション間で比較結果を提供します。 YCSBが提供するデフォルトのワークロードを実行しました。

    ワークロードA:大量の更新
    アプリケーション例:セッションストア、最近のアクションの記録

    ワークロードB:主に読む
    アプリケーション例:写真のタグ付け。タグの追加は更新ですが、ほとんどの操作はタグの読み取りです

    ワークロードC:読み取り専用
    アプリケーション例:プロファイルが他の場所(Hadoopなど)で構築されるユーザープロファイルキャッシュ

    ワークロードD:最新のワークロードを読む
    アプリケーション例:ユーザーステータスの更新。人々は最新の情報を読みたい

    ワークロードE:短距離
    アプリケーション例:スレッド化された会話。各スキャンは特定のスレッド内の投稿を対象としています(スレッドIDによってクラスター化されていると想定)

    ワークロードF:リードモディファイライトワークロード
    アプリケーション例:ユーザーデータベース。ユーザーがユーザーレコードを読み取って変更したり、ユーザーアクティビティを記録したりします。


    1. MongoDBデータベースとコレクションの統計

    2. 10の最高のMongoDBホスティングプラットフォーム

    3. MongoDB $ ltrim

    4. MongoDBでのマルチドキュメントACIDトランザクションの概要とその使用方法