4

我正在尝试存储 aTreeSetDistributedCache供 Hadoop map-reduce 作业使用。到目前为止,我有以下用于将文件从 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

如何有效地将 TreeSet(我已经在此类中构建)添加到要添加到 DistributedCache 的文件中?我是否应该使用 Java 的本机序列化以某种方式将其序列化到文件中?

请注意,TreeSet 在启动 map-reduce 作业的主类中构建一次。TreeSet 永远不会被修改,我只是希望每个映射器都拥有对该 TreeSet 的只读访问权限,而不必一遍又一遍地重建它。

4

1 回答 1

1

序列化 TreeSet 似乎是一种方法。在这种情况下,您不需要创建 HashMap。只需从文件中反序列化 TreeSet 并使用基于键的方法进行搜索。我喜欢这种方法。

于 2013-04-22T03:16:58.660 回答