映射减少中的键值



我只是Hadoop框架的初学者。我想在这里了解一些概念,我浏览了很多链接,但我想得到明确的答案1)为什么地图归约仅适用于键值对。我还读到我可以创建一个 Map Reduce 作业,而无需实际使用 reduce2)映射阶段输入的键是文件偏移键。我可以使用显式键值吗?还是自定义输入?

很好,你正在挖掘Hadoop概念。

1) 我可以使用显式键值吗?或自定义输入?:是的,编写您自己的(覆盖)RecordReader来执行此操作。

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

创建一个地图减少作业,而实际上没有使用reduce?:当然,这完全取决于但建议仅用于小型操作,并且不需要将映射器输出组合为预期输出的情况。

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

Hadoop有助于在硬盘而不是RAM中进行所有计算。

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

相关内容

  • 没有找到相关文章

最新更新