HBaseストレージアーキテクチャの概要



HBaseストレージアーキテクチャは多数のコンポーネントで構成されています。これらのコンポーネントの機能を見て、データがどのように書き込まれているかを見てみましょう。

Apache HBaseは、GoogleのBigtableをモデルにして、Javaで記述された、オープンソースの分散型非リレーショナルデータベースです。 HadoopおよびHDFS(Hadoop Distributed Filesystem)に加えてBigtableと同様の機能を提供します。つまり、多くのビッグデータのユースケースで一般的な、大量のスパースデータを格納するフォールトトレラントな方法を提供します。 HBaseは、ビッグデータへのリアルタイムの読み取り/書き込みアクセスに使用されます。





cプログラムのリンクリスト

HBaseストレージアーキテクチャは、多数のコンポーネントで構成されています。これらのコンポーネントの機能を見て、データがどのように書き込まれているかを見てみましょう。

HFiles:



HFilesは、HBaseのアーキテクチャの低レベルを形成します。 HFilesは、HBaseのデータを高速かつ効率的に保存するために作成されたストレージファイルです。

Hマスター:

HMasterは、HBaseの起動時に、各HRegionServerにリージョンを割り当てる責任があります。行、テーブル、およびそれらの調整アクティビティに関連するすべてを管理する責任があります。 Hmasterには、メタデータの詳細もあります。



コンポーネント HBaseの:

HBaseには次のコンポーネントがあります。

  • 表–地域で構成
  • 地域–一緒に保存される行の範囲
  • リージョンサーバー–1つ以上のリージョンにサービスを提供します
  • マスターサーバー–デーモンはHBaseクラスターの管理を担当します

HBaseはデータをHDFSに直接保存し、HDFSの高可用性とフォールトトレランスに大きく依存しています。

HBaseストレージアーキテクチャ:

HBaseストレージアーキテクチャ

一般的なフローは、クライアントが最初にZookeeperに連絡して、特定の行キーを見つけることです。これは、Zookeeperからサーバー名を取得することによって行われます。この情報を使用して、そのサーバーにクエリを実行し、メタテーブルを保持するサーバーを取得できます。これらの詳細は両方ともキャッシュされ、一度だけ検索されます。最後に、メタサーバーにクエリを実行し、クライアントが探している行を持つサーバーを取得できます。

行がどのリージョンにあるかがわかると、この情報もキャッシュされ、HRegionServerに直接接続します。したがって、時間の経過とともに、クライアントは、メタサーバーに再度クエリを実行することなく、行を取得する場所に関する完全な情報を取得します。 HRegionを開くと、すべてのテーブルのHColumnFamilyごとにStoreインスタンスが設定されます。クライアントがHRegionServerにリクエストを発行すると、データが書き込まれます。HRegionServerは、一致するHRegionインスタンスに詳細を提供します。最初のステップは、データを最初にHLogクラスで表される「ログ先行書き込み」(WAL)に書き込むかどうかを決定する必要があることです。決定は、クライアントによって設定されたフラグに基づいています。
データがWALに書き込まれると、MemStoreに配置されます。同時に、Memstoreがいっぱいかどうかがチェックされ、その場合はディスクへのフラッシュが要求されます。次に、データがHFileに書き込まれます。

iOS開発者とは

質問がありますか?コメントセクションでそれらに言及してください。折り返しご連絡いたします。

関連記事

HBaseアーキテクチャに関する洞察