整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

14.5生产环境中的ZooKeeper 14.5.1可恢复性和性能

hadoop 花牛 11℃ 0评论

  在生产环境中,应当以复制模式运行ZooKeeper。在这里,我们将讨论使用 ZooKeeper服务器的集合体时需要考虑的一些问题。但是本节的内容不够详尽,建议参考《ZooKeeper管理员指南》获得详细的最新操作指南,包括支持的平台、推荐的硬件、维护过程和配置属性。

在安放ZooKeeper所用的机器时,应当考虑尽量减少机器和网络故障可能带来的影响。在实践过程中,一般是跨机架、电源和交换机来安放服务器,这样,这些设备中的任何一个出现故障都不会使集合体损失半数以上 的服务器。

对于那些需要低延迟服务(毫秒级别)的应用来说,最好将所有的服务器都放 在同一个数据中心的同一个集合体中。也有一些应用不需要低延迟服务,它们可以通过跨数据中心(每个数据中心至少两台服务器)安放服务器来获得 更好的可恢复性,领导者选举和分布式粗粒度锁是这类应用的代表。这两个应用中的状态改变都相对较少,因此相对于整个服务来说,数据中心之间传递状态改变消息所需的几十毫秒开销是可以承受的。

ZooKeeper中有一个“观察节点”(observer node)的概念,是指没有投票权的跟随者。由于观察节点不参与写请求过程中达成共识的投 票,因此使用观察节点可以让ZooKeeper集群在不影响写性能的情况下提高读操作的性能。使用观察节点可以让ZooKeeper集群跨越 多个数据中心,同时不会增加正常投票节点的延迟。可以通过将投票节点安放在一个数齒中心,将观察节点安放在另一个数据中心来 实现这一点。

ZooKeeper是具有高可用性的系统,对它来说,最关键的是能够及时地履行其职能。因此,ZooKeeper应当运行在专用的机器上。如果有其他应用程序竞争资源,可能会导致ZooKeeper的性能明显下降。

通过对ZooKeeper进行配置,可以使它的事务日志和数据快照分别保存在不同的磁盘驱动器上。在默认情况下,两者都保存在dataDir属性所指定的目录中,但是通过为dataLogDir属性设置一个值,便可以将事务日志 写在指定的位置。通过指定一个专用的设备(不只是一个分区),一个ZooKeeper服务器可以以最大速率将日志记录写到磁盘,因为写日志是顺序 写,并且没有寻址操作。由干所有的写操作都是通过领导者来完成的,增 加服务器并不能提高写操作的吞吐量,所以提髙性能的关键是写操作的速度。

如果写操作的进程被交换到磁盘上,则性能会受到不利的影响。这是可以避免的,将Java堆的大小设置为小于机器上空闲的物理内存即可。ZooKeeper脚本可以从它的配置目录中获取一个,名为y_ava.e«v的文件,这个 文件被用来设置JVMFLAGS环境变量,包括设置Java堆的大小(和任何其 他所需的JVM参数)。

转载请注明:全栈大数据 » 14.5生产环境中的ZooKeeper 14.5.1可恢复性和性能

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址