【问题标题】:zookeeper example - distributed math calculationzookeeper 示例 - 分布式数学计算
【发布时间】:2014-07-11 22:03:14
【问题描述】:

我正在尝试学习 zookeeper,但是所有的教程和解释都太抽象了,我清楚地了解它如何使我的生活受益,或者,它只是另一种“很棒”但没有人会永远的工具直接在现实生活中使用。

我理解zookeeper是一个“协调工具”,master、worker、assign task和一堆故障预防人员。但是,我有一个非常“幼稚”的现实问题,想知道 zookeeper 本身是否会帮助我解决它。

假设我有一个包含很多行数字的大文件,如下所示:

1000
23213
3231
4213
..

目标/输出是想出另一个文件,其中包含相应行的正方形。

1000^2
23213^2
...

我实际上有一个真实的用例,我使用 python-flask 服务器根据工作人员的请求分配工作,但它太脆弱了。我也不能轻易地跟踪失败。我想知道 zookeeper 会是解决方案。

任何 zookeeper 专家都可以帮我写一些示例代码来将这项工作分发到 3 台计算机上。最后,将数据发送回master。

我完全理解使用 map reduce 或多线程来实现它必须非常容易,但我想知道是否可以仅使用 zookeeper 来展示“zookeeper 是一种协调工具”的想法。

【问题讨论】:

  • 确实,Zookeeper 是一个协调工具,你正在寻找一个计算工具。使用 MapReduce。

标签: java hadoop apache-zookeeper


【解决方案1】:

使用 Zookeeper 的一种常见方法是利用临时节点作为锁来创建分布式工作队列。

Workers 浏览 ZK 中的列表并尝试创建一个临时的“锁”节点。 如果尝试失败,则意味着另一个工作人员已锁定该节点。 如果尝试成功,工作人员可以执行操作(在您的情况下进行数学运算),然后编写一个新节点并删除旧节点。

临时锁的强大之处在于,如果工作人员因任何原因死亡,连接就会断开,ZK 保证锁会自动消失。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    相关资源
    最近更新 更多