2n + 1法定人数是什么意思?

时间:2010-11-19 18:34:32

标签: hadoop hbase apache-zookeeper

我在描述HBase的Zookeeper配置时遇到过这种情况,我对这个术语不太熟悉。 'N'与HBase集群中的节点数有关吗?或者我应该在Zookeeper集群中使用的节点数量?

2 个答案:

答案 0 :(得分:6)

2f + 1指的是您所需的可靠性/可用性水平,通常与性能无关。

ZooKeeper集合(服务集群)由一个或多个服务器组成,每个服务器对每次更改进行“投票”。大多数原始服务器必须在接受之前“批准”任何更改。客户端(在本例中为hbase)连接到集合并使用它进行协调。如果集合已启动,则客户端可以执行此操作,如果集合已关闭,则hbase无法使用该服务。

假设你在整体中有3个服务器(f = 1),如果一个服务器失败,服务仍然是up(2是多数)。但是,如果第二台服务器发生故障,服务将会关闭。

假设整体中有5台服务器(f = 2)。在这种情况下,两个服务器可能会失败(3个占多数)并且服务仍在运行。

通常3台服务器绰绰有余。但是对于在线制作服务环境,我建议5.为什么?假设您将1台服务器停机以进行定期维护。如果您有5台服务器,即使其中一台剩余的活动服务器意外发生故障,您也可以保持正常运行。

为什么不拥有101台服务器呢? - TANSTAAFL。请参见此处的图表。 ZK是一项基于法定人数的服务。随着服务器数量的增加,写入性能实际上下降。需要更多服务器才能参与quroum流程(投票)。结果,写操作/秒减少。 (虽然阅读不受影响)。

答案 1 :(得分:4)

n是指系统可以遇到的故障数,但仍然能够与至少大多数节点一起运行。两个例子:

n = 1 - 一个节点可以在总共2n+1 = 3个节点中失败

n = 2 - 两个节点可以在总共2n+1 = 5个节点中失败

等等!