我是靠谱客的博主 大力方盒,最近开发中收集的这篇文章主要介绍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()

最后

以上就是大力方盒为你收集整理的MapReduce特性(四) 边数据分布的全部内容,希望文章能够帮你解决MapReduce特性(四) 边数据分布所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部