mapreduce - 是 MR 框架中的减速器瓶颈吗
问题描述
我想了解在以下情况下该怎么做。例如,我有 1TB 的文本数据,假设其中 900GB 是单词“Hello”。在每次映射操作之后,我都会有一组 <"Hello",1> 的键值对。
但正如我所说,这是一个巨大的集合,900GB,据我所知,reducer 得到了所有这些并且会粉碎。
我的减速机内存只有 80GB。
减速机 真的会压死吗??换句话说,reducer是水平扩展的瓶颈吗?
解决方案
是的,来自所有映射器的所有相等键都汇集到一个减速器中。
目前尚不清楚您是只有一个单词的 900GB,还是一堆包含一堆单词的大型文本文档。
在后一种情况下,字符串“Hello”实际上并没有占用那么多数据。单个整数也没有。
当然,reducer 也会得到一长串列表,但是如果您将 reducer 代码重新用作组合器,那么您可以通过预先聚合每个输入拆分的值来缓解内存问题
推荐阅读
- xamarin - Xamarin.Essentials.Map 与 Xamarin.Forms.Maps.Map
- c# - 调用移动或删除时如何修复 Microsoft.Office.Interop.Excel.Worksheet 错误
- angular - How to use DataTable with angular 7
- r - Is there a way to replace this loop in R with something that runs faster?
- c# - XSD 到 c# 生成的类导致重复的命名空间
- python - 如何在一片熊猫数据框中插入一系列值
- amazon-web-services - 如何拒绝除一个以外的所有用户在 AWS API Gateway 中调用 API
- ruby-on-rails-5 - json-ld 返回零值
- python - 无论终端窗口大小如何,如何让 tqdm 打印到同一行?
- node.js - 带有 nodejs/express 后端的 ReactJS 应用程序 - 无法让 api 后端工作