HadoopDistributedCache分布式缓存的使用

作者: 云计算机网 分类: 云计算知识 发布时间: 2016-10-01 20:34

做项目的时候遇到一个问题,在Mapper和Reducer方法中处理目标数据时,先要去检索和匹配一个已存在的标签库,再对所处理的字段打标签。因为标签库不是很大,没必要用HBase。我的实现方法是把标签库存储成HDFS上的文件,用分布式缓存存储,这样让每个slave都能读取到这个文件。


main方法中的配置:

//分布式缓存要存储的文件路径String cachePath[] = {                'hdfs://10.105.32.57:8020/user/ad-data/tag/tag-set.csv',                'hdfs://10.105.32.57:8020/user/ad-data/tag/TagedUrl.csv'        };//向分布式缓存中添加文件        job.addCacheFile(new Path(cachePath[0]).toUri());        job.addCacheFile(new Path(cachePath[1]).toUri());

参考上面代码即可向分布式缓存中添加文件。


在Mapper和Reducer方法中读取分布式缓存文件:

/* * 重写Mapper的setup方法,获取分布式缓存中的文件 */    @Override    protected void setup(Mapper<LongWritable, Text, Text, Text>.Context context)                   throws IOException, InterruptedException {        // TODO Auto-generated method stub        super.setup(context);        URI[] cacheFile = context.getCacheFiles();        Path tagSetPath = new Path(cacheFile[0]);        Path tagedUrlPath = new Path(cacheFile[1]);        文件操作(如把内容读到set或map中);    }@Overridepublic void map(LongWritable key, Text value, Context context)            throws IOException, InterruptedException {            在map()中使用读取出的数据;      }

同样,如果在Reducer中也要读取分布式缓存文件,示例如下:

/* * 重写Reducer的setup方法,获取分布式缓存中的文件 */    @Override    protected void setup(Context context)                    throws IOException, InterruptedException {        super.setup(context);        mos = new MultipleOutputs<Text, Text>(context);              URI[] cacheFile = context.getCacheFiles();        Path tagSetPath = new Path(cacheFile[0]);        Path tagSetPath = new Path(cacheFile[1]);        文件读取操作;    } @Override  public void reduce(Text key, Iterable<Text> values, Context context)              throws IOException, InterruptedException {      while(values.iterator().hasNext()){          使用读取出的数据;      }       context.write(key, new Text(sb.toString()));      }

以上。

转载请注明:http://www.cnblogs.com/demievil/p/4059141.html

  • 近期,曙光成功斩获中国石油集团东方地球物理勘探有限责任公司(简称东方地球物理公司)2018年度最大规模地震资料处理解释系统分布式存储集群项目,曙光ParaStor云存储系统再获客户认可。

    据了解,东方地球物理公司在全国乃至全球设立数百个科研生产单位,业务覆盖范围广,并且拥有国内物探行业最大的数据处理中心。近五年,东方地球物理公司平均每年发现和落实圈闭近4500个,共建议各类井位21926口,被采纳率高达75%,被国家授予地质勘探功勋单位。

    随着物探行业的发展及勘探技术的不段演进,勘探精度越来越高,成像技术、人工智能技术也得到了广泛的发展和应用,这就对IT基础架构提出了的挑战,尤以成像技术和两高一宽采集技术对数据存储和数据处理的要求呈几何性成长。

    东方地球物理公司今年运作单体项目原始数据量初期将近1.5PB,这就要求处理解释的数据存储量必须达到10PB以上,并且要求IO吞吐量达到15GB/s以上,并且随着项目持续开展,原始数据量可达2.5PB,单体项目数据存储量至少要20PB以上,对分布式存储系统提出了严苛的挑战。

    针对该项目,曙光与客户深入研究,综合物探行业的应用特点、数据处理流程、数据结果展示特征、客户端打开特征等多方面因素,以曙光ParaStor产品为核心,对分布式存储架构进行优化和针对性调优,打造了一款完美的分布式存储系统解决方案,以应对物探行业数据存储量爆炸式增长。

    作为完全自主研发的分布式存储系统,曙光ParaStor在NAS存储市场中国区IDC排名连续5年排名前三,在石油物探、生物基因、气象环境、卫星遥感、广电媒体、视频大数据等多个领域均有大规模的应用,曙光的产品和服务有效保障了用户应用运行和数据安全。

    目前,曙光ParaStor已连续多年取得中石油、中石化、中海油等多个物探单位的定向采购。此次中标正是曙光以行业需求为驱动,不断探索先进信息技术与应用场景的深度融合,全面满足各领域信息化建设需求的有力实践。

  • 相关推荐:

  • 物探领域新突破,曙光斩
  • 石油勘探,看曙光分布式
  • firefox火狐浏览器清除缓
  • 手把手教你如何清除浏览
  • 快速清除本地DNS缓存
  • win10系统怎么清理qq缓存
  • IE11如何清理缓存
  • 硬盘写入缓存功能是什么
  • 小编分享如何清除浏览器
  • 网页视频缓存在哪里,教
  • 网站内容禁止违规转载,转载授权联系中国云计算网