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
ワードカウントプログラムに使用されます。
ネットワーク内の 2 台のコンピューターを LAN で接続しました。サーバーとして 1 台のコンピューターを使用し、その上で example.py を実行しました。クライアントとしての 2 台目のコンピューターで、次のコマンド ライン ステートメントを使用して mincemeat.py を実行しました。
python mincemeat.py -p changeme server-IP
それは正常に動作します。
現在、ルーターを介してLAN内の3台のコンピューターを接続しています。次に、1 台のマシンがサーバーとして機能し、その上で example.py を実行し、残りの 2 台のマシンをクライアント マシンとして実行します。
タスクを 2 台のクライアント マシンに分散したいと考えています。では、map と reduce のタスクを 2 台のコンピューターに分散するプロセスはどのようなものでしょうか。example.py で定義されたタスクを、それぞれ固有の IP を持つ 2 つのクライアント コンピューターに分散するにはどうすればよいですか?