我在描述HBase的Zookeeper配置时遇到过这个问题,但我对这个术语并不熟悉。“N”与我的HBase集群中的节点数有关吗?或者我应该在Zookeeper集群中使用的节点数?
发布于 2010-11-20 07:15:44
2f+1指的是您需要的可靠性/可用性级别,通常它与性能无关。
ZooKeeper集成(服务集群)由一个或多个服务器组成,这些服务器对每个更改进行“投票”。大多数原始服务器都需要“批准”任何更改才能被接受。客户端(在本例中为hbase)连接到集成,并使用它进行协调。如果合奏启动,客户端可以执行此操作,如果合奏关闭,则hbase无法使用该服务。
假设您在集成中有3台服务器(f=1),如果其中一台发生故障,服务仍在运行(2台是多数)。但是,如果第二台服务器出现故障,服务将会关闭。
假设您在集成中有5台服务器(f=2)。在这种情况下,两台服务器可能会出现故障(3台是多数),而服务仍在运行。
通常情况下,3台服务器就足够了。然而,对于在线生产服务环境,我建议使用5个。为什么?假设您关闭一台服务器进行定期维护。如果您有5台服务器,即使剩余的一台活动服务器意外发生故障,您也可以保持正常工作。
那为什么没有101台服务器呢?-- TANSTAAFL。请看这里的图表。ZK是一个基于仲裁的服务。随着服务器数量的增加,写性能实际上会下降。需要更多的服务器参与队列过程(投票)。结果,写入操作/秒减少。(读取不受影响)。
发布于 2010-11-20 02:44:48
n指的是系统可以经历但仍然能够在至少大多数节点上运行的故障次数。两个例子:
n = 1 -总共有多个2n+1 = 3节点,其中一个节点可以出现故障
n = 2 -总共两个2n+1 = 5节点中可能有两个节点发生故障
诸若此类!
https://stackoverflow.com/questions/4228227
复制相似问题