我有一个HBase群集,包含1个主节点和5个从节点。我想通过其REST API访问集群(基本上通过GET编写广告展示数据)。 我希望以后能够使用Hadoop / Hive?Pig(TBD)运行汇总报告,所以我想要一张数据图片。
我是否在主服务器上启动REST服务器并只写入该单个端点,或者是否在每个从属节点上启动REST服务器实例并在从属节点上进行负载平衡写入?
(后者似乎不对,但我在文档中看到了一些提及,所以有点困惑)。
答案 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本身的性能。