すべての RegionServer は、データをローカル ファイル システムに保存する場合でも、HDFS を使用してデータを保存できるように Hadoop クラスターに配置する必要があります。
はい。RegionServer は、HBase クラスターにデータを格納する役割を担うデーモンです。クラスター全体の複数の RegionServer 上の多くのリージョンに分散している HBase テーブルにデータを格納します。データは RegionServers に入りますが、実際には HDFS 内に保存されます。ただし、スタンドアロン セットアップの場合、HDFS は使用されません。データはローカル FS に直接保存されます。これは、任意の DB および FS に似ています。MSQL と ext3 を例に取ります。はい、実際にはすべての HDFS データがディスクに保存されます。直接見ることはできませんが。
RegionServer は何をしますか? HMaster はすべての RegionServeres にジョブを与え、datanode の tasktracker のように並行して実行できるようにしますか?
上記のコメントで指定されているように、RegionServer は実際にデータを HBase クラスターに格納するデーモンです。申し訳ありませんが、この質問の 2 番目の部分がよくわかりませんでした。datanode の tasktracker のようなものとはどういう意味ですか? HBase クラスターでは、HMaster はクラスター内のすべての RegionServer インスタンスを監視する役割を担うデーモンであり、すべてのメタデータ変更のインターフェイスです。その仕事は監視と管理です。Regionserver は、TaskTrackers のようにジョブを実行しません。データを保存するだけで、リージョンの提供や管理などを担当します。
飼育係は何をしますか?すべての RegionServers ノードとマスター ノードで Zookeeper をセットアップする必要がありますか?
Zookeeper は、カーテンの後ろですべてを調整する人です。これは、構成情報の保守、ネーミング、分散同期の提供、およびグループ サービスの提供を行うための集中型サービスです。分散 HBase セットアップは、実行中の ZooKeeper クラスターに依存します。参加しているすべてのノードとクライアントが、実行中の ZooKeeper アンサンブルにアクセスできる必要があります。デフォルトでは、HBase は ZooKeeper クラスターを管理します。これは、HBase の開始/停止プロセスの一部として開始および停止されます。ただし、HBase とは無関係に ZooKeeper アンサンブルを管理し、HBase が使用する必要があるクラスターに HBase をポイントすることもできます。すべてのノードで Zookeeper を実行する必要はありません。クラスタに適した数値を決定してください。ここで注意すべきことの 1 つは、常に奇数の Zookeepers を使用する必要があるということです。
#3 に関連しています。regionServer がダウンすると、HBase は Zookeeper を使用して回復することを知っています。それは具体的にどのように機能しますか?
各 RegionServer は ZooKeeper に接続され、マスターはこれらの接続を監視します。ZooKeeper は、タイムアウトを使用してハートビートを管理します。そのため、タイムアウトになると、HMaster はリージョン サーバーが停止していると宣言し、回復プロセスを開始します。回復プロセス中に次のことが起こります。
- ノードがダウンしていることの識別 :ノードが過負荷になっている、またはノードが停止しているという理由だけで、ノードが応答を停止する可能性があります。
- 進行中の書き込みの回復:コミット ログを読み取り、フラッシュされなかった編集を回復します。
- リージョンの再割り当て:リージョン サーバーは、以前は一連のリージョンを処理していました。このセットは、それぞれのワークロードに応じて、他のリージョン サーバーに再割り当てする必要があります。
このプロセスは、実際にはもう少し複雑です。詳細については、こちらをご覧ください。また、HBase を理解するために、Lars による HBase The Definitive Guide という本を読むことをお勧めします。
HTH