在利用mapred分析大数据时,程序中常常会引入hdfs上一些“辅助数据”,通常的做法在mr的启动前加载这些数据形成cache以提高效率,而mr在大并发下去访问hdfs的同一文件可能存在性能瓶颈,DistributedCache可以帮助解决。
DistributedCache</code> is a facility provided by the Map-Reduce framework to cache files (text, archives, jars etc.) needed by applications.
添加cacheFile:
DistributedCache.addFileToClassPath(new Path(args[2]), conf);
cacheFile通过hadoop命令参数提供,args[2]是/group/tlog/resources/ipAppMapping.txt
在mapper或reducer中使用:
@Override
protected void setup(Context context) throws IOException, InterruptedException {
Path[] localArchives = DistributedCache.getFileClassPaths(context.getConfiguration());
FileSystem fs = FileSystem.get(context.getConfiguration());
InputStream in;
if (localArchives == null) {
System.out.println("Load refources file form system class loader.");
in = ClassLoader.getSystemResourceAsStream("ipAppMapping.txt");
} else {
in = fs.open(localArchives[0]);
}
if (in == null) {
throw new RuntimeException("Resource file is not exist.");
}
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
//加载辅助数据
reader.close();
}
相关推荐
2. **添加文件路径到Job**: 在创建`Job`对象时,使用`DistributedCache.addCacheFile()`方法将HDFS上的文件路径添加到缓存列表中。 3. **在任务中访问文件**: 通过`DistributedCache.getLocalCacheFiles...
2. **使用DistributedCache机制**:这种方式更为灵活,因为它只需要将JDBC jar包上传至Hadoop集群的分布式文件系统(HDFS)中的`/lib`目录即可,通过以下代码确保集群中所有节点都能使用这个jar包: ```java ...
6. DistributedCache技术的应用:DistributedCache是一种基于MapReduce的改进算法,通过减少mapper输出的数据来达到优化的目的。 7. 大数据时代的特征:大数据时代的到来,使得数据的存储和处理变得越来越复杂。...
5. Shuffle及优化:了解Shuffle的过程和优化方法,例如使用Combiner、使用DistributedCache等。 6. Yarn工作机制:了解Yarn的工作机制,包括ResourceManager、ApplicationMaster、Container等。 7. Yarn调度器:了解...
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程序
根据 IDC 最近的报告,到 2020 年,全球数据量将扩大 50 倍之多。大数据的特征使得传统数据库技术无法满足大数据的存储和处理要求,而 Hadoop 技术的出现解决了这些问题。 三、MapReduce 工作原理 MapReduce 是 ...
Hadoop使用HDFS(Hadoop Distributed File System)来存储数据,HDFS是一个分布式文件系统,能够存储大量数据。 MapReduce的工作原理 MapReduce是Hadoop的核心技术,负责将复杂的计算任务分解成多个小任务,以便...
HBase是一个开源的非关系型分布式数据库(NoSQL),它建立在Hadoop之上,提供了对大数据的随机实时读写访问。HBase数据库介绍包括它如何使用HDFS存储数据,以及它的主从架构设计。HBase集群结构包括Master和...
上传后,这些数据会被 DistributedCache 缓存,确保同一计算节点不会重复下载相同的作业文件。 4. **提交作业至 ResourceManager**:客户端向 `ResourceManager` 提交作业,提交的信息同样包括 Job ID 和作业所在 ...
最后,分析了MapReduce框架的通用二路连接算法RSJ,并提出了基于DistributedCache的改进算法,以减少mapper输出的数据来达到优化的目的。 关键词:Hadoop、MapReduce、性能、算法 1. 绪论 伴随互联网和Web技术的...
上传后,这些数据会被 DistributedCache 缓存。 3. **提交作业**:客户端向 `ResourceManager` 提交作业,提交的信息包括 `jobID` 和 HDFS 文件目录等基本信息。`ResourceManager` 不直接接收计算数据和资源数据,...
Hadoop的核心组件包括Hadoop分布式文件系统(HDFS)和MapReduce,这两个组件共同解决了海量数据的存储和处理问题。 【MapReduce工作原理】 MapReduce是一种编程模型,用于处理和生成大数据集。它分为两个主要阶段...
- **DistributedCache**:分布式缓存,提高作业执行效率。 - **作业**:Hadoop中的任务单元。 - **集群规模**:根据需求调整集群的大小。 - **网络拓扑**:优化网络架构以提升性能。 - **环境设置**:配置Hadoop运行...
DistributedCache 是一个提供给Map/Reduce框架的工具,用来缓存文件(text, archives, jars and so on)文件的默认访问协议为(hdfs://). DistributedCache将拷贝缓存的文件到Slave节点在任何Job在节点上执行之前。 ...
在这种场景中,小表可以直接放入内存,通过DistributedCache类将小表复制多份,每个map任务执行时,内存中都有小表的一份副本,从而避免了不必要的数据传输,优化了join操作。 为了便于读者理解和操作,文档还介绍...
- **DistributedCache**:Hadoop的功能,用于缓存文件到各个工作节点,提高效率。 - **Hadoop档案**:归档工具,用于合并小文件以优化HDFS的存储效率。 - **安全性**:Hadoop支持安全模式,提供了权限管理、身份...