专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

如何使用Hadoop的DistributedCache_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/8 18:42:52       共计:3578 浏览

如何使用Hadoop的DistributedCache?

操作步骤:1.将数据的分发到每个节点上:DistributedCache.addCacheFile(new URI("HDFS://cloud01:9000/user/hadoop/mrinput/ST.txt"), conf);注意,此操作一定要在创建Job,将conf传递给Job之前进行,否则数据文件的路径不会被Mapper中取到。2.在每个Mapper中获取文件URI,再进行相关操作: URI[] uris=DistributedCache.getCacheFiles(context.getConfiguration()); 比如读取该文件: FileSystem fs = FileSystem.get(URI.create("hdfs://cloud01:9000"), context.getConfiguration()); FSDataInputStream in = null; in = fs.open(new Path(uris[0].getPath())); BufferedReader br=new BufferedReader(new InputStreamReader(in));hadoop中的DistributedCache 2WordCount.javaHadoop的分布式缓存机制使得一个job的所有map或reduce可以访问同一份文件。在任务提交后,hadoop将由-files和-archive选项指定的文件复制到HDFS上(JobTracker的文件系统)。在任务运行前,TaskTracker从JobTracker文件系统复制文件到本地磁盘作为缓存,这样任务就可以访问这些文件。对于job来说,它并不关心文件是从哪儿来的。在使用DistributedCache时,对于本地化文件的访问,通常使用Symbolic Link来访问,这样更方便。通过 URI hdfs://namenode/test/input/file1#myfile 指定的文件在当前工作目录中被符号链接为myfile。这样job里面可直接通过myfile来访问文件,而不用关心该文件在本地的具体路径。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:spring如何理解循环依赖_java | ·下一条:torrent文件后缀是什么文件_java

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有