HBaseの構造(Clientの仕組)
提供: LunaBiblos
Software > DataBase > KeyValueストア > HBaseの構造(Clientの仕組)
HBaseの構造(Server構成) << HBaseの構造(Clientの仕組)
HBase Client
HbsaeClientは目的のRowを含むRegionファイルが保存されているHRegionServerを探し出す機能を有します。
HBase ClientはHBaseMasterと通信してROOT テーブルのRegionファイルを保持するHRegionServerのアドレス受け取りますが、これがClientとMasterとの間で行われる唯一の通信です。
ClientがROOT テーブルのRegionファイルを保持するHRegionServerのアドレスを取得すると、「目的のRowを含むRegionファイルがどのHRegionServerが何処にあるか訪ねる為のMETA テーブルのRegionファイル」を、どのHRegionServerが保持しているのか、ROOT テーブルから探し出します。
目的のMETA Regionファイルを保持するHRegionServerが分かるとそのHRegionServerへと接続し、「目的のRowを含むRegionファイルがどのHRegionServerが何処にあるか」をそのMETA Regionファイルの中から探し出します。
以上の過程を得て取得した「目的のRowを含むRegionファイルを持つHRegionServer」に接続し、読込/書込Requestを投げます。
上記過程で得た情報はClient側に残され、次回以後の接続では上記の処理を飛ばしてデータを取得する事が出来ます。
負荷分散の為に、或いは特定のHRegionServerが応答停止した為にHbaseMasterによるRegionファイルの再割り当てが行われると、Hbase ClientはMETA Tableを再度取得し直し、目的のRegionファイルを取得しに行きます。
もしMETA Tableを構成するRegionファイルが再割り当てされていた場合、ClientはROOT Tableから再度、データの取得をやり直します。
更にもしROOT TableのRegionファイルが再割り当てされた場合、ClientはHBaseMasterに再度問い合わせし直し、ROOT TableのRegionファイルを保持するHRegionServerのアドレスを取得し直します。
Client API
Clientで利用するJavaのAPIに関してはHTableクラスとHBaseAdminクラスのJAVADOCを参照してください。
参考
HBaseの構造(Server構成) << HBaseの構造(Clientの仕組)