0

私のMap/Reduceプログラムは、S3から頻繁にファイルを要求しています。レデューサーでは、Amazon S3にファイルを頻繁にリクエストしており、同じファイルを複数回リクエストする場合があります(各ファイルは1MBから12MBの間で約10Kファイルです)。Hadoop分散キャッシュを使用すると、これらすべてのファイルがすべてのワーカーノードにコピーされるため効率的ではありませんが(私が理解しているように)、レデューサーフェーズのようにこれらを実行したくないので、10Kファイルからのみ1000ファイルを要求できます。さらに、レデューサーがファイルの前に要求した場合、レデューサーが再度要求した場合は、再度要求したくありません。誰かがワーカーノードにehcacheやoscacheのようなキャッシングフレームワークを実装したかどうか尋ねていますか?または、要求されたファイルのみをワーカーマシンのディスクにキャッシュする方法はありますか?

ありがとうYahia

4

3 に答える 3

0

おそらく、パーティション化されたキャッシュをサポートする成熟したインメモリデータグリッドが必要です。GridGainはその1つです。www.gridgain.comをご覧ください

于 2012-08-04T15:52:01.907 に答える
0

キャッシュとしてHDFSを使用することをお勧めします。S3は通常、ローカルディスクよりもはるかに低速であるため、HDFSはローカルキャッシュと見なすことができます。
私は完全自動ソリューションについては知りませんが、distcpが役立つと信じています。(http://hadoop.apache.org/common/docs/r0.19.2/distcp.html)「更新」オプションがあるため、サイズが変更されていないファイルはコピーされません

于 2012-08-04T17:06:32.243 に答える
0

SHARKを見 てください。設定にそれほど時間はかからないはずです。もう1つのオプションはmemcachedです。

于 2013-03-07T00:23:24.153 に答える