如何通过负载平衡在HBase集群上使用REST api

时间:2012-01-15 09:04:08

标签: rest hadoop hbase stargate

我有一个HBase群集,包含1个主节点和5个从节点。我想通过其REST API访问集群(基本上通过GET编写广告展示数据)。 我希望以后能够使用Hadoop / Hive?Pig(TBD)运行汇总报告,所以我想要一张数据图片。

我是否在主服务器上启动REST服务器并只写入该单个端点,或者是否在每个从属节点上启动REST服务器实例并在从属节点上进行负载平衡写入?

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

2 个答案:

答案 0 :(得分:1)

我使用通过nginx提供的负载平衡的其余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进行休息。

答案 1 :(得分:0)

如果您不希望REST服务器成为瓶颈,那么您希望运行其中的几个并在它们之间实现负载平衡。

我不确定我是在自己的数据节点上还是在另一组机器上运行它们。以高频率解析REST消息可能会影响HBase本身的性能。