我正在尝试将 TreeSet
存储在 DistributedCache
上,以供 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 的 native 序列化以某种方式将其序列化到文件中吗?
请注意,TreeSet 在启动 map-reduce 作业的主类中构建一次。 TreeSet 永远不会被修改,我只是希望每个映射器都可以只读访问这个 TreeSet,而不必一遍又一遍地重建它。
最佳答案
序列化 TreeSet 似乎是一种方法。在这种情况下,您不需要创建 HashMap。只需从文件中反序列化 TreeSet 并使用这些方法根据键进行搜索。我喜欢这种方法。
关于java - 在 Hadoop DistributedCache 上存储 TreeSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16136842/