MapReduce特性(四) 边数据分布

边数据:作业所需的额外的只读数据,辅助处理主数据集

1 JobConf

    > Configuration类的setter方法

    > Context.getConfiguration()

    > 如果是复杂的元数据,用户自定义序列化或者使用Stringifier类

2 分布式缓存

分布式缓存优于序列化边数据

工作机制

    > 用户启动作业,Hadoop使用-files -archives -libjars等选项将指定文件复制到分布式文件系统中

    > 任务运行前,NM将文件从DFS复制到本地磁盘使任务访问,此时文件本地化

    > 文件以符号链接的方式指向任务工作目录

    > -libjars指定的文件会在任务执行前添加到任务的classpath

    > NM使用Counter统计文件使用情况

    > 缓存容量过高时,LRU删除文件

    > yarn-nodemanager.localizer.cache.target-size-mb设置缓存大小,默认10GB


工具GenericOptionsParser

-files 指定分发的文件,包含逗号隔开的URI列表

-archives 复制存档文件

-libjars 将JAR文件添加到classpath

hadoop jar hadoop-examples.jar\
MaxTemperatureByStationNameUsingDistributedCacheFile \
-files input/ncdc/metadata/stations-fixed-width.txt input/ncdc.all output

将本地文件statioins-fixed-width.txt复制到任务节点


分布式缓存API

Job API

addCacheXXXX()
setCacheXXXX()
addXXXXToClassPath()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值