Map Reduce中的关键值

卡尔提

我只是Hadoop框架的初学者。我想了解一些概念,我浏览了许多链接,但我想获得明确的答案1)为什么Map reduce只适用于键值对。我还读到我可以创建Mapreduce作业,而无需实际使用reduce 2)用于输入映射阶段的键是fileoffset键。我可以使用显式键值吗?还是自定义输入?

斯里肯斯

好,您正在挖掘Hadoop概念。

1)我可以使用显式键值吗?还是自定义输入?:是的,编写您自己的(覆盖)代码RecordReader

2)为什么Map reduce只对键值对起作用?:顾名思义,MapReduce只是将需要的数据从提供给程序的数据集中映射(过滤)所需的数据到Reduce(基于唯一键组合)。现在,为什么选择键值对?:由于您正在处理非结构化数据,因此也不想获得与输出相同的数据。我们将需要对数据进行一些操作。考虑在Java中使用Map,它有助于唯一地标识该对,而在hadoop中,借助Sort&Shuffle也是如此。

创建Map减少作业,而实际上不使用reduce ?:当然,这完全取决于但建议仅用于小规模操作,并且在不需要将映射器输出合并为预期输出的情况下,建议使用此方法。

原因:这是分布式概念,商品硬件优先考虑的地方。例如:我有一个大数据集要处理。在使用Java程序(仅Java,不是hadoop)处理数据集时,我们将所需的数据存储在Collection对象中(就像使用RAM空间一样简单)。引入Hadoop是为了以不同的方式完成相同的工作:将所需的数据存储在中context映射器中的上下文是指中间数据(本地FS),精简器中的上下文是指输出(HDFS)。当然,两种情况下的上下文都存储在HardDisk中。

Hadoop帮助您在HardDisk(而不是RAM)中进行所有计算。

我建议阅读Hadoop Defenitive GuideData Algorithms一书,以更好地理解。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python map / reduce:从单个map lambda发出多个键值

来自分类Dev

在JavaScript中动态更新Map中的键值

来自分类Dev

RavenDB map reduce,reduce中的重复条目

来自分类Dev

Map Reduce程序中的问题

来自分类Dev

修改升压中的键值unordered_map

来自分类Dev

修改升压中的键值unordered_map

来自分类Dev

在javascript中访问Java Map的键值对

来自分类Dev

从 Clojure 中的 Mutable Map 获取键值

来自分类Dev

完成MongoDB Map-Reduce中的步骤

来自分类Dev

完成MongoDB Map-Reduce中的步骤

来自分类Dev

组合框中的关键值?

来自分类Dev

对map reduce中的reduce函数的行为感到困惑

来自分类Dev

如何使用map函数在python中为字典设置键值

来自分类Dev

如何使用Spark的map转换在Scala中返回多个键值对?

来自分类Dev

将键值对添加到Scala中的Map

来自分类Dev

spark reduce and map issue

来自分类Dev

$(...).. map(...)。reduce不是函数

来自分类Dev

RethinkDB Map / Reduce示例

来自分类Dev

Map-reduce 概念

来自分类Dev

在freemarker中迭代Map of Map的Map

来自分类Dev

如何在scala中根据map的键值对map的ArrayBuffer进行排序

来自分类Dev

无法使用.map()在元素中设置“关键”道具

来自分类Dev

如何从聚合中的reduce或map中的文档字段声明变量?

来自分类Dev

如何在scala中编写hadoop map reduce程序

来自分类Dev

map-reduce中不同组件/动作的执行顺序

来自分类Dev

如何在map reduce程序中解析PDF文件?

来自分类Dev

使用Map-Reduce时Python中的惰性布尔评估

来自分类Dev

使用Map Reduce确定输入数据中的模式

来自分类Dev

使用map / reduce在列表中添加数字对的差