当前位置: 首页 > 面试题库 >

使用MapReduce / Hadoop对大数据进行排序

长孙高远
2023-03-14
问题内容

我正在阅读有关MapReduce的内容,以下内容使我感到困惑。

假设我们有一个包含一百万个条目(整数)的文件,并且我们想使用MapReduce对它们进行排序。我了解的处理方式如下:

编写一个对整数排序的映射器函数。因此,框架会将输入文件分为多个块,并将它们分配给不同的映射器。每个映射器将彼此独立地对数据块进行排序。完成所有映射器后,我们会将其每个结果传递给Reducer,它将合并结果并提供给我最终输出。

我的疑问是,如果我们只有一个化简器,那么它最终将如何利用分布式框架,如果最终我们必须将结果汇总到一个地方呢?问题可追溯到在一个地方合并100万个条目。是这样还是我缺少什么?

谢谢,钱德


问题答案:

查看合并排序。

事实证明,就操作和内存消耗而言,对部分排序的列表进行排序比对整个列表进行排序要有效得多。

如果化简器得到4个排序的列表,则只需查找4个列表中的最小元素,然后选择该列表。如果列表的数量是恒定的,则此减少为O(N)操作。

通常,减速器也可以“分布”在树上,因此工作也可以并行化。



 类似资料:
  • 我有学生(弦)和老师(弦列表)。我想根据讲师人数按降序提取记录。讲师如下示例:[a、b、c]-3、[e、f]-2、[g、h、i、j]-4。 我要按4,3,2的顺序。 这取决于现场讲师阵列的大小。如何使用mongoTemplate或自定义mongodb查询或聚合进行查询??

  • 大数据 概述 大数据: 收集到的数据已经远远超出了我们的处理能力。 大数据 场景 假如你为一家网络购物商店工作,很多用户访问该网站,其中有些人会购买商品,有些人则随意浏览后就离开。 对于你来说,可能很想识别那些有购物意愿的用户。 那么问题就来了,数据集可能会非常大,在单机上训练要运行好几天。 接下来:我们讲讲 MapRedece 如何来解决这样的问题 MapRedece Hadoop 概述 Had

  • 问题内容: 是否可以使用排序数组,然后再将另一个相关数组定位为与排序数组相同,例如: 从这一点出发,我想对数组进行排序,这样,如果“人”有一个cellNo“ x”,则在对数组进行排序后,他将具有相同的“ cellNo”“ x” 问题答案: 我会采用另一种方法: 创建一个新对象: 创建一个比较器: 打电话一对阵列

  • 我有一个,其中的键是字符串。我需要获取这些键并根据键大小(即字符串长度)对其进行排序,然后将其存储在某个中。 注意:如果两个键的大小相同,那么我们可以把它放在任何顺序。 为(如)。

  • 问题内容: 为什么我的打印输出数组未在以下代码中排序? 问题答案: 您需要两个循环来实现Bubble Sort。 样例代码:

  • 我喜欢在我的SortimentRespository中有一个findAll方法,它允许排序和分页,并且我可以在其中传递一个参数,该参数包含当前页面和页面的大小以及我想要排序的列的名称(不区分大小写)。 请求应类似于: http://localhost:8081/x/rest/sorti ments?尺寸=20 或 http://localhost:8081/x/rest/sortiments?si