2016-10-04 5 views
1

hbaseがhdfsをどのように使用しているかを理解しようとしています。
これは私が理解しているところです(私が間違っていれば私を修正してください):
hbaseはデータを保存するためにhdfsを使用し、そのデータは複数の領域に分割され、 1つの領域(排他的に)が多数のデータノードと通信してデータを取得し、データを入れることができるとすれば、その領域サーバが失敗した場合、それらのデータノードに格納されたデータにアクセスできなくなるでしょう
前もってありがとうございます: )hbaseがhdfsをどのように使用するかを理解する

答えて

1

一般に、リージョン・サーバーはデータ・ノード上で実行されます。

Regionserverは、可能であればローカルデータノードへの読み書きを実行し、HDFSはデータが2つのランダムなデータノードに複製されるようにします。だから、常にそのリージョンサーバによって書き込まれたデータは、HDFSの3つのノードに格納されます。

regionserverがリージョンにサービスを提供している間は、そのリージョンのデータを読み書きしますが、regionserverプロセスがクラッシュした場合、HBaseマスターはそのリージョンにサービスする別のregionseverを選択します。データは数分間利用できなくなりますが、HBaseはすぐに回復します。

ホスト全体に障害が発生した場合、HDFSは他の2つのノードにデータを確実に書き込みます。シナリオは同じです。マスターは新しいリージョンサーバーを選択して障害領域を開き、データは失われません。

+0

の3つのデータノード(レプリケーションに使用される)のうち、リージョンサーバーは1つのデータノードのみを通信(または使用)します。 – aName

+0

読み取りの場合、通常はyesです。書き込みの場合、書き込みは1 DNに移動し、HDFSによって他のものに複製されます。リージョンに障害が発生し、新しいホストで開始された場合、ホストに必要なデータがローカルにないため、Regionserverはクラスター内の他のノードと通信してデータを読み取ります。そのシナリオでは、クラスタ内の他のデータノードと話すことができます –

+0

ありがとうございます。 – aName

関連する問題