Как использовать API REST на кластере HBase с помощью балансировки нагрузки - PullRequest
1 голос
/ 15 января 2012

У меня есть пилотный кластер HBase с 1 ведущим и 5 подчиненными узлами.Я хочу получить доступ (в основном записывать данные показов рекламы через GET) к кластеру через его REST API.Я хочу иметь возможность позже запускать агрегированные отчеты, используя Hadoop / Hive? Pig (TBD), поэтому мне нужна одна картинка данных.

Запускаю ли я сервер REST на главном сервере и просто пишу на негоодна конечная точка, или я запускаю экземпляр REST-сервера на каждом подчиненном узле и записываю балансировку нагрузки на подчиненные узлы?

(Последнее кажется неправильным, но я видел некоторые упоминания об этом в документациинемного запутался).

Ответы [ 2 ]

1 голос
/ 31 января 2013

Я использую остальные 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 для ваших остальных вызовов,

0 голосов
/ 16 января 2012

Если вы не хотите, чтобы REST-сервер являлся узким местом, тогда вы хотите запустить несколько из них и распределить нагрузку между ними.

Я не уверен, что запустил бы ихсами датододы или другая группа ящиков.Разбор сообщений REST с высокой частотой может повлиять на производительность самого HBase.

...