排序概述| 学习笔记

简介: 快速学习排序概述

开发者学堂课程【Hadoop 分布式计算框架 MapReduce:排序概述】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/94/detail/1519


排序概述


1、排序是 MapReduce 框架中最重要的操作之一。

2、MapTask 和 ReduceTask 均会对数据按照 key 进行排序。

该操作属于 Hadoop 的默认行为。

任何应用程序中的数据均会被排序,而不管逻辑上是否需要。

3、默认排序是按照字典顺序排序,且实现该排序的方法是快速排序。

4、对于 MapTask,它会将处理的结果暂时放到环形缓冲区中,当环形缓冲区使用率达到一定阈值后,再对缓冲区中的数据进行一次快速排序,并将这些有序数据溢写到磁盘上,而当数据处理完毕后,它会对磁盘上所有文件进行归并排序。

5、对于 ReduceTask,它从每个 MapTask 上远程拷贝相应的数据文件,如果文件大小超过一定阈值,则溢写磁盘上,否则存储在内存中。

如果磁盘上文件数目达到一定阈值,则进行一次归并排序以生成一个更大文件;如果内存中文件大小或者数目超过一定阈值,则进行次合并后将数据溢写到磁盘上。

当所有数据拷贝完毕后,ReduceTas 统一对内存和磁盘上的所有数据进行一次归并排序。

相关文章
排序概述
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说八大排序就是内部排序。          当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。
597 0
|
分布式计算 Hadoop 开发者
分组排序案例分析| 学习笔记
快速学习分组排序案例分析
147 0
分组排序案例分析| 学习笔记
|
分布式计算 Hadoop 开发者
分组排序案例扩展| 学习笔记
快速学习分组排序案例扩展
115 0
分组排序案例扩展| 学习笔记
|
10月前
|
存储 搜索推荐
排序的基本概念
排序的基本概念
|
存储 NoSQL 搜索推荐
索引的概述和类型 | 学习笔记
快速学习 索引的概述和类型
索引的概述和类型 | 学习笔记
|
10月前
|
安全
不可变集合的详细概述
1.不可变集合 1.1 什么是不可变集合 是一个长度不可变,内容也无法修改的集合 1.2 使用场景 如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践。 当集合对象被不可信的库调用时,不可变形式是安全的。
71 0
集合概述
我们知道,数组是System.Array类的一个实例。但是,数组有很大的缺点,就是需要指定大小,也不能添加,插入,删除元素。因此,在.NET中引入了集合的概念,所有的集合类都存放在System.Collections命名空间下。
567 0
|
存储 算法 搜索推荐
|
搜索推荐 算法
排序算法概述
提到排序算法我们要知道两个经常提到的概念:(1)排序算法的稳定性:所谓“稳定性”是 指,在待排序数组出现的两个相同的元素,排序之后相对维持保持不变。比如:待排序数组为arr[] = {1,4,3,1},排序之后元素变为arr_new[] = {1,1,4,3},并且arr_new中的第一个是arr中的第一个1,arr_new中的第二个1是arr中的第二个1,这是我们就说这种排序时稳定的。
912 0
|
存储 移动开发 算法
八大排序(一)--------排序的基本概念与分类
八大排序(一)--------排序的基本概念与分类
101 0