1

1つのマスターノードと5つのスレーブノードを持つパイロットHBaseクラスターがあります。REST APIを介してクラスターにアクセス(基本的にはGETを介して広告インプレッションデータを書き込む)したい。後でHadoop/Hive?Pig(TBD)を使用して集計レポートを実行できるようにしたいので、データの1つの画像が必要です。

マスターでRESTサーバーを起動し、その単一のエンドポイントに書き込むだけですか、それとも各スレーブノードでRESTサーバーインスタンスを起動し、スレーブノード間で書き込みを負荷分散しますか?

(後者は正しくないようですが、ドキュメントでそれについての言及を見たので、少し混乱しています)。

4

2 に答える 2

1

残りのAPIは、nginxを介して提供される負荷分散で使用します。nginxの設定は次のようになります...

upstream cluster
{
    server master:1234;
    server slave1:1234;
    server slave2:1234;
    server slave3:1234;
    server slave4:1234;
}
server
{
    listen 4444;
    server_name someserver.com;
    location /
    {
        proxy_pass http://cluster;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
    }
}

クラスタ内のすべてのサーバーで実行します

hbase rest -p 1234 start

残りの呼び出しについては、someserver.com:4444を呼び出します。

于 2013-01-30T21:41:52.490 に答える
0

RESTサーバーをボトルネックにしたくない場合は、それらのいくつかを実行し、それらの間で負荷分散を行う必要があります。

それらをデータノード自体で実行するのか、別のボックスのグループで実行するのかはわかりません。RESTメッセージを高頻度で解析すると、HBase自体のパフォーマンスに影響を与える可能性があります。

于 2012-01-15T22:23:55.827 に答える