早上好,
我是新的zookeeper和它的协议,我对它的广播协议zab感兴趣。
你能给我提供一个简单的java代码,它使用zookeeper的zab协议吗?我一直在搜索,但我没有成功地找到一个代码,显示如何使用zab。
事实上,我需要的很简单,我有一个mapreduce代码,我希望所有的Map者在找到更好的x值(即更大的值)时更新一个变量(比如x)。在这种情况下,领导者必须比较旧值和新值,然后向所有Map者广播实际的最佳值。我怎么能用java做这样的事?
提前谢谢,谢谢
早上好,
我是新的zookeeper和它的协议,我对它的广播协议zab感兴趣。
你能给我提供一个简单的java代码,它使用zookeeper的zab协议吗?我一直在搜索,但我没有成功地找到一个代码,显示如何使用zab。
事实上,我需要的很简单,我有一个mapreduce代码,我希望所有的Map者在找到更好的x值(即更大的值)时更新一个变量(比如x)。在这种情况下,领导者必须比较旧值和新值,然后向所有Map者广播实际的最佳值。我怎么能用java做这样的事?
提前谢谢,谢谢
1条答案
按热度按时间vatpfxk51#
你不需要使用zab协议。您可以按照以下步骤操作:
你在zookeeper上有一个znode say/bigvalue。所有的Map程序在启动时读取存储在其中的值。他们还监视znode上的数据变化。每当Map器获得更好的值时,它就会用更好的值更新znode。所有Map程序都将收到数据更改事件的通知,它们将读取新的最佳值,并重新建立数据更改监视。这样,它们与最新的最佳值同步,并且可以在有更好的值时更新最新的最佳值。
实际上,zkclient是一个非常好的库,可以与zookeeper一起使用,它隐藏了很多复杂性(https://github.com/sgroschupf/zkclient ). 下面的示例演示了如何监视znode“/bigvalue”的任何数据更改。