我正在试着储存一个 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
如何有效地将树集(我已经在这个类中构建)添加到我正在添加到distributedcache的这个文件中?我应该使用java的本机序列化来将其序列化到文件中吗?
请注意,treeset只在启动map reduce作业的主类中构建一次。树集将永远不会被修改,我只是希望每个Map程序都有只读访问此树集,而不必一遍又一遍地重建它。
1条答案
按热度按时间bbmckpt71#
序列化树集似乎是一种方法。在这种情况下,不需要创建hashmap。只需从文件中反序列化treeset并使用基于键的方法进行搜索。我喜欢这种方法。