首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分布式缓存

分布式缓存
EN

Stack Overflow用户
提问于 2010-07-09 06:08:43
回答 1查看 1.5K关注 0票数 0

我在opensuse linux上使用hadoop 19,我不使用任何集群,而是在我的机器上运行hadoop代码。我遵循的标准技术是放入分布式缓存,但不是一次又一次地访问来自分布式缓存的文件,而是将文件的内容存储在一个数组中。从文件中提取的这一部分是在配置()函数中完成的。当我尝试使用fiel名称时,我得到了nullPointerException。这是守则的一部分:

代码语言:javascript
复制
.
..part of main()
..
 DistributedCache.addCacheFile(new URI("/home/hmobile/hadoop-0.19.2/output/part-00000"), conf2);
             DistributedCache.addCacheFile(new URI("/home/hmobile/hadoop-0.19.2/output/part-00001"), conf2);
.

.part of mapper

public void configure(JobConf conf2)
{
      String wrd; String line;     try {
                localFiles = DistributedCache.getLocalCacheFiles(conf2);
                System.out.println(localFiles[0].getName());// error NULLPOINTEREXCEPTION
            } catch (IOException ex) {
                Logger.getLogger(blur2.class.getName()).log(Level.SEVERE, null, ex);
            }
            for(Path f:localFiles)// error NULLPOINTEREXCEPTION
            {
                 if(!f.getName().endsWith("crc"))
                 {
                    BufferedReader br = null;
                    try {
                        br = new BufferedReader(new FileReader(f.toString()));

这样的处理能不能在配置()中完成?

EN

回答 1

Stack Overflow用户

发布于 2010-07-10 22:58:37

这将取决于您是使用本地作业运行程序(mapred.job.tracker=local)还是以伪分布式模式(即mapred.job.tracker=localhost:8021或=mynode.mydomain.com:8021)运行。分布式缓存不工作在本地模式,只有伪分布和全分布模式.

否则,可以在配置()中使用分布式缓存。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3210222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档