5

今、HBaseについて学んでいます。HBase クラスターと Hadoop クラスターを次のようにセットアップします。

server1: Namenode HMaster
server2: datanode1 RegionServer1 HQuorumPeer
Server3: datanode2 RegionServer2 HQuorumPeer
Server4: datanode3 RegionServer3 HQuorumPeer

HBase クラスターについていくつか質問があります。

1: All RegionServers must be in the Hadoop Cluster so it can use HDFS to store 
   data, even though it will store data into local file system, right?
2: What does RegionServer do? Does the HMaster give the job to all RegionServeres 
   and let them running parallel, like tasktracker in datanode? 
3: What does zookeeper do? Do I need to setup zookeeper in all RegionServers 
   nodes and the master node? 
4: It is related to #3. I know HBase uses zookeeper to recovery once regionServer 
   is down. How does it specific work?   
4

1 に答える 1

17

すべての 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

于 2013-09-10T23:15:04.913 に答える