2016-04-27 15 views
0

でDistributedCached使用:が、私は、オブジェクトを持つクラスタモード

class Cache { 
    Map<K,V> map; 
} 

私はその後、各マップのタスクでセットアップ()関数の中で、私は処理のために、このCacheオブジェクトをロードし、URIは、このオブジェクトが含まれている指定するDistributedCacheを使用しました特に、各Mapタスクにある値を格納するためにCacheオブジェクトを使用しました。

私の質問は、クラスタモードでhadoopを実行すると、各データノードのマップの内容がそれぞれ異なることです。そうですか?なぜなら、私がローカルモードで開発したとき、マップの内容にはデータセット全体の結果が含まれていたからです。

答えて

0

DNに保存されるデータは同じ形式になり、マッパーは同じ形式のファイルを処理します。ドライバコードでは、入力と書式のタイプを定義する必要があります。この場合、コンテキストは同じになります。マップタスクが任意の数のDNで実行される場合、マップコンテキストは同じになります。

分散キャッシュでは、DistributedCache APIを使用してファイルを追加します。また、セットアップメソッドでは、Pathオブジェクトの配列の中で処理したいファイルをチェックします。

+0

答えていただきありがとうございますが、私はここでmap'pの内容が違うかどうかということですか?例:ノード1はA、B、Cを含み、ノード2はD、E、Fを含む...ノード1のキャッシュファイルはノード2(D、E、F)に(A、B、C) ? – nd07

+0

Map Reduce Applicationsを作成している場合は、Hadoop Clusterのすべてのノードでいくつかのファイルを共有する必要があります。それは単純なプロパティファイルまたは実行可能なjarファイルにすることができます。 Hadoop Map Reduce Projectは、この機能をDistributedCacheという名前で提供しています。 この分散キャッシュはジョブ構成で構成されています。これは、クラスタ上のすべてのマシンに読み取り専用のデータを提供します。 –

関連する問題