4

Hadoop の map-reduce ジョブで使用するためTreeSetにを に保存しようとしています。DistributedCacheこれまでのところ、HDFS から にファイルを追加するための次の方法がありますDistributedCache

Configuration conf = new Configuration();
DistributedCache.addCacheFile(new URI("/my/cache/path"), conf);
Job job = new Job(conf, "my job");
// Proceed with remainder of Hadoop map-reduce job set-up and running

DistributedCache に追加するこのファイルに (このクラスで既に作成した) TreeSet を効率的に追加するにはどうすればよいですか? Javaのネイティブシリアライゼーションを使用して、これを何らかの方法でファイルにシリアライズする必要がありますか?

TreeSet は、map-reduce ジョブを開始するメイン クラスで一度構築されることに注意してください。TreeSet が変更されることはありません。すべてのマッパーがこの TreeSet に読み取り専用でアクセスできるようにし、何度も再構築する必要がないようにしたいだけです。

4

1 に答える 1

1

TreeSet をシリアル化することがアプローチのようです。この場合、HashMap を作成する必要はありません。ファイルから TreeSet をデシリアライズし、メソッドを使用してキーに基づいて検索するだけです。私はこのアプローチが好きです。

于 2013-04-22T03:16:58.660 に答える