HBase の長所、短所、パフォーマンスのボトルネック
HBaseアーキテクチャには常に「単一障害点」機能があり、それに関連する例外処理メカニズムはありません。
ここでは、HBase の長所と短所、およびパフォーマンスのボトルネックについて学びます。
HBase のパフォーマンスのボトルネック
- どのような実稼働環境でも、HBase は 5000 ノードを超えるクラスターで実行されており、Hmaster のみがすべてのスレーブ リージョン サーバーのマスターとして機能します。Hmaster がダウンすると、長い時間が経過しないと回復できません。クライアントがリージョン サーバーに接続できる場合でもです。別のマスターを持つことは可能ですが、アクティブになるのは XNUMX つだけです。メインの Hmaster がダウンした場合、XNUMX 番目の Hmaster をアクティブにするには長い時間がかかります。そのため、Hmaster はパフォーマンスのボトルネックになります。
- HBaseでは、クロスデータ操作や結合操作を実装することはできませんが、もちろん、結合操作は次のように実装できます。 MapReduce設計と開発に多くの時間がかかります。テーブルの結合操作はHBaseでは実行が困難です。ユースケースによっては、HBaseに存在するテーブルに関連する結合操作を作成することが不可能です。
- RDBMS 外部ソースから HBase サーバーにデータを移行する場合、HBase には新しい設計が必要になります。 ただし、このプロセスには非常に時間がかかります。
- HBase はクエリを実行するのが非常に困難です。 HBase をいくつかの機能と統合する必要があるかもしれません。 SQL のようなレイヤー アパッチ phoenix では、HBase 内のデータをトリガーするクエリを作成できます。 HBase 上に Apache Phoenix を搭載するのは本当に良いことです。
- HBase のもう XNUMX つの欠点は、テーブル内に複数のインデックスを作成できず、行キー列のみが主キーとして機能することです。 そのため、複数のフィールドを検索したり、ロウキー以外を検索したい場合にはパフォーマンスが遅くなります。 この問題は、MapReduce コードを記述し、 アパッチ SOLR そしてApache Phoenixを使用します。
- さまざまなユーザーが HBase からデータにアクセスするためのセキュリティがゆっくりと改善されています。
- HBase は部分キーを完全にはサポートしていません
- HBase では、テーブルごとにデフォルトのソートが XNUMX つだけ許可されます
- 大きなサイズのバイナリ ファイルを HBase に保存するのは非常に困難です
- HBase のストレージにより、リアルタイムのクエリと並べ替えが制限される
- キー値を使用してテーブルの内容を検索するという点では、キー検索と範囲検索は、リアルタイムで実行されるクエリを制限します。
- デフォルトのインデックス作成は HBase には存在しません。 プログラマーは、HBase でインデックス作成機能を実行するために、数行のコードまたはスクリプトを定義する必要があります。
- ハードウェア要件とメモリ ブロック割り当ての点で高価です。
- 分散クラスタ環境には、より多くのサーバをインストールする必要があります(NameNode、DataNode、 飼育係、およびリージョンサーバー)
- パフォーマンス的には高メモリマシンが必要
- コストとメンテナンスの面でも高価です
HBase の利点
ここでは、HBase の長所と利点を学びます。
- HDFSファイルストレージ上に大規模なデータセットを保存し、HBaseテーブルに存在する数十億行を集計して分析できます。
- HBaseではデータベースを共有できる
- Operaデータの読み取りや処理などの処理は、従来のリレーショナル モデルと比較して短時間で完了します。
- ランダム読み取りおよび書き込み操作
- オンライン分析操作には、HBase が広く使用されています。
- 例: ATM マシンのリアルタイム データ更新などの銀行アプリケーションでは、HBase を使用できます。
HBase の欠点
HBase の重要な短所/制限は次のとおりです。
- 従来のモデルの代替として HBase を完全に使用することは期待できません。 従来のモデルの機能の一部は HBase でサポートできません
- HBase は SQL のような機能を実行できません。 SQL 構造をサポートしていないため、クエリ オプティマイザーは含まれていません。
- HBaseはCPUとメモリを大量に消費し、大規模なシーケンシャル入力または出力アクセスを行いますが、Map Reduceジョブは主に固定メモリで入力または出力にバインドされています。Map Reduceジョブと統合されたHBaseは予測できないレイテンシをもたらします。
- HBase は pig と統合され、 ハイブ ジョブによりクラスタ上でメモリの問題が発生することがある
- 共有クラスタ環境では、HBase CPU 要件に割り当てるノードあたりのタスクスロットが少なくて済む