1

我有一个带有 1 个主节点和 5 个从节点的试点 HBase 集群。我想通过其 REST API 访问(基本上通过 GET 写入广告印象数据)集群。我希望以后能够使用 Hadoop/Hive?Pig (TBD) 运行聚合报告,所以我想要一张数据图片。

我是在主节点上启动 REST 服务器并仅写入该单个端点,还是在每个从节点上启动一个 REST 服务器实例并在从节点之间进行负载平衡写入?

(后者似乎不对,但我在文档中看到了一些关于这一点的提及,所以有点困惑)。

4

2 回答 2

1

我使用通过 nginx 提供的带有负载平衡的 rest api。你的 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

If you don't want the REST server to be a bottleneck, then you want to run several of them and load balance across them.

I'm not sure if I'd run those on the datanodes themselves or on another group of boxes. Parsing the REST messages at high frequency might impact the performance of HBase itself.

于 2012-01-15T22:23:55.827 回答