1

各マッパーは、非常に大きな辞書にアクセスする必要があります。各マッパーが独自のコピーを開くオーバーヘッドを回避し、代わりにすべてのマッパーが 1 つのグローバル共有オブジェクトを指すようにする方法はありますか?

DISCO または mapreduce パラダイムに固有の提案は役に立ちます。

4

1 に答える 1

0

Redisキー値ストアを使用する

Linux および Windows にすばやくインストールでき、コンパイルされたバージョンも利用できます。

python redis パッケージを使用すると、値の書き込み、読み取り、更新を非常に簡単に行うことができます。

ハッシュ データ型を使用するのが最も効果的です。いわゆるフィールド (Python 辞書用語のキー) に新しい値を追加/編集できます。これは非常に高速であり、非常に簡単でもあります。

このソリューションは、独立したプロセスでも機能します。ネットワークを介して Redis でデータを共有することもできるため、マップ/リデュースのシナリオでは、これは優れたオプションです。

値を格納および復元するときに注意しなければならない唯一のことは、値は文字列のみであるため、それらをシリアル化および逆シリアル化する必要があるということです。json.dumps と json.loads は、これに非常に適しています。

于 2014-04-17T16:11:31.660 に答える