Distribute Cached 使用

简介: 在Kettle中说到Pentaho的MapReduce要用到它,就查了一下关于它的资料,以下是从官方查到的内容,记录一下。
在Kettle中说到Pentaho的MapReduce要用到它,就查了一下关于它的资料,以下是从官方查到的内容,记录一下。
DistributedCache: 一些比较小的需要共享的文件或者jar包,我们先存到hdfs上,然后在MapReduce线程当中进行共享,直接用了。
// Setting up the cache for the application
     
     1. Copy the requisite files to the FileSystem:
     
     $ bin/hadoop fs -copyFromLocal lookup.dat /myapp/lookup.dat  
     $ bin/hadoop fs -copyFromLocal map.zip /myapp/map.zip  
     $ bin/hadoop fs -copyFromLocal mylib.jar /myapp/mylib.jar
     $ bin/hadoop fs -copyFromLocal mytar.tar /myapp/mytar.tar
     $ bin/hadoop fs -copyFromLocal mytgz.tgz /myapp/mytgz.tgz
     $ bin/hadoop fs -copyFromLocal mytargz.tar.gz /myapp/mytargz.tar.gz

     
     2. Setup the application's JobConf:
     
     JobConf job = new JobConf();
    // #lookup.dat 表示给前面的这个文件取一个别名,类似sql里面的as别名一样
     DistributedCache.addCacheFile(new URI("/myapp/lookup.dat#lookup.dat"), 
                                   job);
     DistributedCache.addCacheArchive(new URI("/myapp/map.zip", job);
     DistributedCache.addFileToClassPath(new Path("/myapp/mylib.jar"), job);
     DistributedCache.addCacheArchive(new URI("/myapp/mytar.tar", job);
     DistributedCache.addCacheArchive(new URI("/myapp/mytgz.tgz", job);
     DistributedCache.addCacheArchive(new URI("/myapp/mytargz.tar.gz", job);

     
     3. Use the cached files in the Mapper
     or Reducer:
     
     public static class MapClass extends MapReduceBase  
     implements Mapper<K, V, K, V> {
     
       private Path[] localArchives;
       private Path[] localFiles;
       
       public void configure(JobConf job) {
         // Get the cached archives/files
         localArchives = DistributedCache.getLocalCacheArchives(job);
         localFiles = DistributedCache.getLocalCacheFiles(job);
       }
       
       public void map(K key, V value, 
                       OutputCollector<K, V> output, Reporter reporter) 
       throws IOException {
         // Use data from the cached archives/files here
         // ...
         // ...
         output.collect(k, v);
       }
     }
查看代码了才知道其实它根本不是什么缓存,它只不过是在配置文件中的指定属性记录下相应的值,然后在mapreduce的时候,调用配置文件里面的属性值,然后取得需要的文件盒jar包。
目录
相关文章
|
1月前
|
存储 弹性计算 人工智能
最新版阿里云服务器收费价格表(轻量/ECS/GPU):一年、1个月与小时费用清单,计费拆解与选型指南
很多新手在采购云服务器时,只关注实例本身标价,忽略带宽、云盘、流量、快照等附加资源成本,最终实际账单远高于预期。阿里云服务器分为轻量应用服务器、ECS通用云服务器、EGS GPU高性能服务器三大产品线,三类产品计费体系、定价逻辑差异巨大,支持包年包月预付费、按量小时后付费、抢占式实例三种计费方案。本文整理全套价格清单,分别展示一年、一个月、按小时的参考费用,拆解各项隐性计费项,附带阿里云CLI命令行查询实例规格、预估账单的实操代码,讲解不同计费模式的优缺点、适用场景,以及成本优化方案,帮助个人开发者、站长、AI开发团队、小微企业精准估算上云成本,选择性价比最高的服务器规格,避免不必要的账单支出
1066 0
|
3月前
|
监控 算法 小程序
图书馆座位占位检测数据集| 2600张YOLO智慧校园数据集分享
本数据集含2600张真实图书馆场景图像,YOLO格式,标注包、笔记本电脑、人三类目标,支持座位占用状态智能识别。兼顾隐私保护与工程实用,适用于智慧图书馆管理、占座行为治理及YOLO等目标检测算法研究。
|
4月前
|
人工智能 运维 监控
AI 驱动网络攻击自主化演进与传统防御体系适配性研究
本文基于Anthropic 2025–2026年832个恶意账号实测数据,揭示AI正驱动网络攻击从人工主导迈向全链路自主化:67%攻击者用AI筹备攻击,中高风险者占比由33%升至56%,AI已深度渗透后渗透阶段。研究指出MITRE ATT&CK等传统框架失效、防御体系滞后,并提出覆盖行为监测、框架迭代、权限管控、人员赋能的分层防御方案。(239字)
466 4
|
4月前
|
数据采集 JSON API
半小时学会 Python 爬虫:从零爬取知乎实时热榜榜单
半小时学会 Python 爬虫:从零爬取知乎实时热榜榜单
|
5月前
|
SQL 算法 中间件
如何让海量数据跑得更快?分库分表实战,从入门到避坑
本文深入解析MySQL分库分表核心原理与实战,结合ShardingSphere中间件,详解垂直/水平拆分策略、路由计算、SQL归并及分布式事务、全局ID、平滑扩容等避坑要点,助你突破单库瓶颈,构建高并发、海量数据下的高可用数据库架构。
|
5月前
|
人工智能 自然语言处理 算法
大三暑假没实习,我用三周拿下一个认证,结果秋招逆转了
大三暑假没实习?别焦虑!CAIE注册人工智能工程师认证零基础可考,3周冲刺、每月开考、7天出证。聚焦AI应用能力,覆盖大模型、智能工作流与企业实践,获电信、腾讯、平安等众多名企认可,助你秋招简历突围!
|
6月前
|
SQL 人工智能 自然语言处理
业务持续变化时,语义层到底该怎么迭代才不会越改越乱?
业务持续变化时,语义层不能靠“打补丁”硬扛。关键在于构建可分层(对象/关系/属性/规则)、可回溯、可校验的迭代机制,实现映射、口径、对象、知识四类变更分离治理,并配套影响分析与持续校准闭环。
|
4月前
|
前端开发 机器人 API
用两行代码将 AgentRun 集成到你的应用
AgentRun支持OpenAI协议,改两行代码即可将Agent无缝接入现有应用,兼容Python/Node.js/Java等;同时提供SDK、UI嵌入、IM机器人、云事件触发五种集成方式,开箱即用全链路能力。
|
5月前
|
自然语言处理 供应链 数据挖掘
2026年电商行业有哪些agent应用?瓴羊agent全链路落地场景详解
2026年,瓴羊推出覆盖客服服务、数据分析、数据治理与智能决策的全链路AI Agent矩阵:Quick Service实现售前咨询、售后自动处理与情感化人机协同;Quick BI“智能小Q”支持自然语言查数、归因分析与自动报告;Dataphin+Data Agent打通数据底座与智能决策闭环。四大Agent深度协同,助力电商人货场高效匹配,加速数智化转型。(239字)
|
7月前
|
编解码 搜索推荐 数据安全/隐私保护
Windows 7 系统安装教程:U盘 PE 启动+分区格式化+系统安装
本教程详解Windows 7系统重装全流程:含PE启动盘制作、BIOS设置、磁盘格式化、ISO镜像安装、初始配置及正版激活(含工具下载链接),步骤清晰,适配主流硬件,小白也能轻松完成系统重装。(239字)
2277 3