我已经从https://github.com/michaelfairley/mincemeatpy/zipball/v0.1.2下载了 mincemeat.py 示例
example.py 如下:
#!/usr/bin/env python
import mincemeat
data = ["Humpty Dumpty sat on a wall",
"Humpty Dumpty had a great fall",
"All the King's horses and all the King's men",
"Couldn't put Humpty together again",
]
datasource = dict(enumerate(data))
def mapfn(k, v):
for w in v.split():
yield w, 1
def reducefn(k, vs):
result = sum(vs)
return result
s = mincemeat.Server()
s.datasource = datasource
s.mapfn = mapfn
s.reducefn = reducefn
results = s.run_server(password="changeme")
print results
它用于字数统计程序。
我已经通过 LAN 连接了网络中的两台计算机。我使用一台计算机作为服务器并在其上运行 example.py;在作为客户端的第二台计算机上,我使用以下命令行语句运行 mincemeat.py:
python mincemeat.py -p changeme server-IP
它工作正常。
现在我已经通过路由器在局域网中连接了 3 台计算机。然后一台机器作为服务器工作,我想在它上面运行 example.py,并将剩下的两台机器作为客户端机器运行。
我想将任务分配给我的两台客户端机器。那么将map和reduce的任务分发到两台计算机的过程是怎样的呢?如何将我在 example.py 中定义的任务分配给分别具有唯一 IP 的两台客户端计算机?