DistributedCache使用:
1.import包
import org.apache.hadoop.filecache.DistributedCache;
2.加到Cache中
DistributedCache.addCacheFile(new Path(args[++i]).toUri(), job.getConfiguration());
3.Map或Reduce中调用
Configuration conf = context.getConfiguration();
Path [] pathwaysFiles = new Path[0];
try {
pathwaysFiles = DistributedCache.getLocalCacheFiles(conf);
}catch (IOException ioe) {
System.err.println("Caught exception while getting cached files: " + StringUtils.stringifyException(ioe));
}
for (Path pathwaysFile : pathwaysFiles) {
try {
BufferedReader fis = new BufferedReader(new FileReader(pathwaysFile.toString()));
String pathway = null;
while ((pathway = fis.readLine()) != null) {
String [] p = pathway.split(" ");
pathways.add(p);
}
}catch (IOException ioe) {
}
}
DistributeCche的存储路径:
/ifshk4/HDFS/hadoop/hadoop12/tmp/mapred/local/taskTracker/archive/compute-7-0.local/user/hadoop/kipu/expression_head.txt/expression_head.txt
执行命令:
/tmp/hadoop/bin/hadoop jar kipu.jar org.bgi.kipu.kipu /user/hadoop/kipu/expression_final.txt /user/hadoop/kipu/output/ -pathways /user/hadoop/kipu/pathways_final.txt -head /user/hadoop/kipu/expression_head.txt
这个路径其实是当前map/reduce任务的本地路径再加上hdfs上的路径,
因此当然会跟执行任务时输入的参数不一致啦。
因此在DistributeCache中有多个文件的时候可以用以下方法判断:
1.将参数的内容放到conf中去:
job.getConfiguration().set("kipu.head.path", args[i]);
2.用contains来判断
pathwaysFile.toString().contains(conf.get("kipu.head.path"))
分享到:
相关推荐
### DistributedCache类使用详解 #### 一、概述 在大数据处理框架Hadoop中,`DistributedCache`类是一个非常实用且强大的工具,主要用于缓存文件系统中的数据文件,以实现跨多个节点的数据共享。这对于提高分布式...
在具体使用过程中,XXF.BaseService.DistributedCache提供的API简洁易用,开发者可以方便地进行缓存的存取操作,如设置、获取、删除和更新等。此外,它可能还包括对缓存过期策略的支持,如设置TTL(Time To Live)来...
使用AppFabric或Redis存储序列化对象的小测试 在此之后你可以运行 DistributedCacheCLI.exe 这会: 插入 1,000 个对象, 再读一遍, 两分钟后,对象将过期。 安装 要安装这个简单的 DistributedCache 客户端,...
通过配置不同参数,可以灵活调整缓存策略,如近似最近最少使用(LRU)等。项目还提供方便的APi接口,便于应用程序访问缓存服务。适用于需要高性能缓存解决方案的场景,如生态学、植物学等领域的研究。 1、资源项目...
本文将深入探讨分布式缓存的基本概念、工作原理以及如何在Go中构建和使用分布式缓存。 一、分布式缓存基础 1. **缓存概念**:缓存是一种用于存储临时数据的技术,目的是提高数据读取速度。在分布式系统中,缓存...
签出distributedcache软件包(如果没有),并使用maven构建工具进行构建。 签出distributedcache_process1程序包。 run main方法存在于distributedcache_process1包中。 主类-com.indix.dc.process1.App#main
微软 分布式 缓存 Velocity CTP3 使用介绍: http://blog.csdn.net/yangjian15/archive/2009/12/18/5033248.aspx
使用IDistributedCache而不是字节数组使用强类型对象的额外添加的逻辑。 有两个版本,有关详细信息,请参见下表。 信息 版本 依存关系 信息 Microsoft已声明不推荐使用此依赖项。 这仍然是预览版本。 代码示例 用...
1. Hadoop简介2.... Hadoop在yahoo的应用附录A: 云计算在线监测平台附录B: Hadoop安装、运行、使用说明附录C:使用DistributedCache的MapReduce程序附录D:使用ChainMapper和ChainReducer的MapReduce程序
1. Hadoop简介2.... Hadoop在yahoo的应用附录A: 云计算在线监测平台附录B: Hadoop安装、运行、使用说明附录C:使用DistributedCache的MapReduce程序附录D:使用ChainMapper和ChainReducer的MapReduce程序
本节主要探讨的是如何使用Redis作为分布式缓存,以及与本地内存缓存的区别。 首先,本地缓存(例如使用`Microsoft.Extensions.Caching.Memory`)在单个应用程序实例中工作良好,可以存储短暂的数据,例如用户会话...
应用分析环节,如果在Coherence配置中对多个NamedCache使用了通用配置(如使用*号进行配置),则所有或部分Cache将共享相同的存储属性,如元素个数限制、超时时间、清除策略等。这种情况下,精细化配置各个Cache的...
5. Shuffle及优化:了解Shuffle的过程和优化方法,例如使用Combiner、使用DistributedCache等。 6. Yarn工作机制:了解Yarn的工作机制,包括ResourceManager、ApplicationMaster、Container等。 7. Yarn调度器:了解...
2. .NET Core的`Microsoft.Extensions.Caching`:适用于跨平台应用,包括MemoryCache和 DistributedCache(如Redis)。 ```csharp var cache = new MemoryCache(new MemoryCacheOptions()); cache.Set("key", "value...
服务器之间的 JVM/进程间通信 此应用程序需要在节点之间进行协调,并确保其中一个且只有一个执行 System.out.println("We are started!") 此应用程序在不同节点/机器... 可以使用 git clone 命令将源代码导入到您的 IDE
Hadoop使用HDFS(Hadoop Distributed File System)来存储数据,HDFS是一个分布式文件系统,能够存储大量数据。 MapReduce的工作原理 MapReduce是Hadoop的核心技术,负责将复杂的计算任务分解成多个小任务,以便...
在这个主题中,我们将深入探讨如何使用 `Microsoft.Extensions.Caching.Redis` 包来实现分布式缓存,并了解相关的核心概念和技术。 首先,`Microsoft.Extensions.Caching.Redis` 是一个 NuGet 包,它为 ASP.NET ...
我们可以使用Microsoft.Extensions.Caching命名空间下的各种类,如MemoryCache(内存缓存)、DistributedCache(分布式缓存)等。MemoryCache类似于.NET Framework中的Cache,而DistributedCache则适合跨服务器的...
伴随互联网和Web技术的飞速发展,网络日志、互联网搜索索引、电子商务、社交等技术的广泛使用带来了数据量的急剧增长。数据量的急剧增长使得传统数据库技术无法满足大数据的存储和计算要求,于是Hadoop技术诞生了。...