このブログ投稿は、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:リードモディファイライトワークロード
アプリケーション例:ユーザーデータベース。ユーザーがユーザーレコードを読み取って変更したり、ユーザーアクティビティを記録したりします。