简单介绍

可插入的 shuffle 和 sort 功能,同意在shuffle 和 sort 逻辑中用可选择的实现类替换。这个情况的样例是:用一个不是HTTP的应用协议,如RDMA来 shuffle 从Map节点中到Reducer节点的数据。或者用自己定义的同意 Hash聚合和Limit-N查询的算法来取代sort逻辑。

重要: 可插入的 shuffle  sort 功能是实验性的、不稳定。这意味着提供的API可能改变或破坏未来Hadoop版本号的兼容性。

实现一个自己定义的 Shuffle 和 Sort

一个自己定义的 shuffle 实现须要一个 org.apache.hadoop.yarn.server.nodemanager.containermanager.AuxServices.AuxiliaryService 在 NodeManagers 上执行的实现类和 org.apache.hadoop.mapred.ShuffleConsumerPlugin 在Reducer任务上执行的实现类。

由 Hadoop 提供的默认实现能够作为參考:

  • org.apache.hadoop.mapred.ShuffleHandler
  • org.apache.hadoop.mapreduce.task.reduce.Shuffle

一个自己定义的 sort 实现须要一个 org.apache.hadoop.mapred.MapOutputCollector 在Mapper任务上执行的实现类和(可选的,依赖于sort实现)实现类一个 org.apache.hadoop.mapred.ShuffleConsumerPlugin在Reducer任务上执行的实现类。

由 Hadoop 提供的默认实现能够作为參考:

  • org.apache.hadoop.mapred.MapTask$MapOutputBuffer
  • org.apache.hadoop.mapreduce.task.reduce.Shuffle

配置

除了执行在 NodeManagers 上的辅助的服务帮助 shuffle(默认是 ShuffleHandler),全部的可插入组件执行在作业任务上。这意味着。他们在每个作业上配置。

帮助Shuffle
的辅助服务必须在NodeManager上进行配置。

Job 配置属性 (在每一个作业上):

属性 默认值 说明
mapreduce.job.reduce.shuffle.consumer.plugin.class org.apache.hadoop.mapreduce.task.reduce.Shuffle 要用的 ShuffleConsumerPlugin实现
mapreduce.job.map.output.collector.class org.apache.hadoop.mapred.MapTask$MapOutputBuffer 要用的 MapOutputCollector实现

这些属性也能够在 mapred-site.xml 中配置,以对全部作业改动默认值。

NodeManager 属性配置, yarn-site.xml,全部节点上:

属性 默认值 说明
yarn.nodemanager.aux-services ...,mapreduce_shuffle 辅助的服务名
yarn.nodemanager.aux-services.mapreduce_shuffle.class org.apache.hadoop.mapred.ShuffleHandler 要用的辅助的类

重要: 假设在默认的 mapreduce_shuffle 服务之外设置一个辅助的服务,那么新的服务key
应该加入到 yarn.nodemanager.aux-services 属性中,比如 mapred.shufflex.
然后属性定义相关的类必须是 yarn.nodemanager.aux-services.mapreduce_shufflex.class.

Hadoop-2.2.0中文文档—— MapReduce下一代- 可插入的 Shuffle 和 Sort的更多相关文章

  1. Hadoop-2.2.0中文文档—— MapReduce 下一代 - Encrypted Shuffle

    简单介绍 Encrypted Shuffle capability (加密洗牌功能? )同意用HTTPS 和 可选的client验证 (也称作双向的 HTTPS, 或有client证书的 HTTPS) ...

  2. Hadoop-2.2.0中文文档——MapReduce 下一代 -——集群配置

    目的 这份文档描写叙述了怎样安装.配置和管理从几个节点到有数千个节点的Hadoop集群. 玩的话,你可能想先在单机上安装.(看单节点配置). 准备 从Apache镜像上下载一个Hadoop的稳定版本号 ...

  3. Hadoop-2.2.0中文文档—— MapReduce 下一代--容量调度器

    目的 这份文档描写叙述 CapacityScheduler,一个为Hadoop能同意多用户安全地共享一个大集群的插件式调度器,如他们的应用能适时被分配限制的容量. 概述 CapacitySchedul ...

  4. Hadoop-2.2.0中国文档—— MapReduce 下一代 -- 公平调度

    目的 此文档描写叙述了 FairScheduler, Hadoop 的一个可插入式的调度器,同意 YARN 应用在一个大集群中公平地共享资源. 简单介绍 公平调度是一种分配资源给应用的方法.以致到最后 ...

  5. Apache Spark 2.2.0 中文文档

    Apache Spark 2.2.0 中文文档 - 快速入门 | ApacheCN Geekhoo 关注 2017.09.20 13:55* 字数 2062 阅读 13评论 0喜欢 1 快速入门 使用 ...

  6. Apache Storm 1.1.0 中文文档 | ApacheCN

    前言 Apache Storm 是一个免费的,开源的,分布式的实时计算系统. 官方文档: http://storm.apache.org 中文文档: http://storm.apachecn.org ...

  7. Django2.0中文文档

    title: Django2.0中文文档 tags: Python,Django,入沐三分 grammar_cjkRuby: true --- Django2.0版本已经发布了,我们先来看一个图片 从 ...

  8. webpack4.0中文文档踩坑记录

    一直没有正儿八经去看过webpack4.0的文档,前段时间工作比较轻松,于是就有了此文...面都这样一个问题:请问在您的开发生涯中,令你最痛苦最无奈的是什么?小生的回答只有一个:“阅读那些令人发指的文 ...

  9. Apache Spark 2.2.0 中文文档 - Spark 编程指南 | ApacheCN

    Spark 编程指南 概述 Spark 依赖 初始化 Spark 使用 Shell 弹性分布式数据集 (RDDs) 并行集合 外部 Datasets(数据集) RDD 操作 基础 传递 Functio ...

随机推荐

  1. dsp下基于双循环缓冲队列的视频采集和显示记录

    对最近在设计的视频采集和显示缓冲机制做一个记录,以便以后使用. 视频采集和显示缓冲机制,其实是参考了Linux下v4L2的驱动机制,其采用输入多缓冲frame,输出多缓冲的切换机制.简单的就是ping ...

  2. 设备管理 USB ID

    发现个USB ID站点,对于做设备管理识别的小伙伴特别实用 http://www.linux-usb.org/usb.ids 附录: # # List of USB ID's # # Maintain ...

  3. poj 3270 更换使用

    1.确定初始和目标状态. 明确.目标状态的排序状态. 2.得出置换群,.比如,数字是8 4 5 3 2 7,目标状态是2 3 4 5 7 8.能写为两个循环:(8 2 7)(4 3 5). 3.观察当 ...

  4. Mod in math

    An Introduction to Modular Math When we divide two integers we will have an equation that looks like ...

  5. POJ 2756 Autumn is a Genius 大数加减法

    Description Jiajia and Wind have a very cute daughter called Autumn. She is so clever that she can d ...

  6. 自己动手写了第三阶段的处理器——教学OpenMIPS处理器蓝图

    我们会继续上传新书<自己动手写处理器>(未公布).今天是第十条.我每星期试试4 从本章開始将一步一步地实现教学版OpenMIPS处理器.本章给出了教学版OpenMIPS的系统蓝图,首先介绍 ...

  7. 重构后的ConditionHelper

    两三个月前曾写过<重构ConditionHelper>的随笔,但不知是因为写得不够好还是没有什么新意,我发表至博客园首页时被屏蔽了,本着好的知识应该分享给更多人,加之新项目已交付用户使用所 ...

  8. hdu 5187 高速幂高速乘法

    http://acm.hdu.edu.cn/showproblem.php?pid=5187 Problem Description As one of the most powerful brush ...

  9. The Swift Programming Language 中国版

    iSwifting社会的 Swift 兴趣交流群:303868520 iOS 微信公众账号:iOSDevTip Swift 微信公众账号:SwiftDev iSwifting社区 假设你认为这个项目不 ...

  10. 数据库采用多表连接查询,对应javaBean文件连接方式

    在一个Web项目中,只要是存在数据库就一定会有JavaBean文件.一个JavaBean文件会对应一张数据库中的表,供dao中的代码来调用用来存取数据.我们都知道,在数据库设计的时候,如果A.B两张表 ...