Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 组合器的实现与内部工作_Hadoop_Mapreduce_Combiners - Fatal编程技术网

Hadoop 组合器的实现与内部工作

Hadoop 组合器的实现与内部工作,hadoop,mapreduce,combiners,Hadoop,Mapreduce,Combiners,我想在我的MR代码中使用组合器,比如说WordCount 我应该如何实施它 什么样的数据从组合器传递到减速器 这将是伟大的,如果你们中的任何人都可以为我提供两个合路器以及减速机的代码 如果您能解释组合器的工作方式,那就更好了 我是mapreduce的新手,目前正处于学习阶段 提前感谢:)组合器用于映射器和reducer之间,以减少映射和reduce阶段之间的数据传输量 Combiner实现类似于reducer实现。它应该实现reduce接口的reduce方法。输入和输出键值对应类似于reduce

我想在我的MR代码中使用组合器,比如说WordCount

我应该如何实施它

什么样的数据从组合器传递到减速器

这将是伟大的,如果你们中的任何人都可以为我提供两个合路器以及减速机的代码

如果您能解释组合器的工作方式,那就更好了

我是mapreduce的新手,目前正处于学习阶段


提前感谢:)

组合器用于映射器和reducer之间,以减少映射和reduce阶段之间的数据传输量

Combiner
实现类似于reducer实现。它应该实现reduce接口的reduce方法。输入和输出键值对应类似于reducer的键值对

在我们的驱动程序中,我们可以将我们的减速器类称为组合器

job.setCombinerClass(MyReducer.class)
组合器
只能用于可交换和关联的函数

For example maximum of numbers

Map 1 output - (23,27, 31) -> Combiner -> 31
Map 2 output - (22,36,33,45) -> Combiner -> 45
Map 3 output - (41,33,15,16) -> Combiner -> 41

Combiner acts on each of the mapper's output.

Combiner output - (31,45,41) ->Reducer -> 45

从示例中可以明显看出,数据传输量现在减少了。

组合器用于映射器和还原器之间,以减少映射和还原阶段之间的数据传输量

Combiner
实现类似于reducer实现。它应该实现reduce接口的reduce方法。输入和输出键值对应类似于reducer的键值对

在我们的驱动程序中,我们可以将我们的减速器类称为组合器

job.setCombinerClass(MyReducer.class)
组合器
只能用于可交换和关联的函数

For example maximum of numbers

Map 1 output - (23,27, 31) -> Combiner -> 31
Map 2 output - (22,36,33,45) -> Combiner -> 45
Map 3 output - (41,33,15,16) -> Combiner -> 41

Combiner acts on each of the mapper's output.

Combiner output - (31,45,41) ->Reducer -> 45

从示例中可以明显看出,数据传输量现在减少了。

组合器用于映射器和还原器之间,以减少映射和还原阶段之间的数据传输量

Combiner
实现类似于reducer实现。它应该实现reduce接口的reduce方法。输入和输出键值对应类似于reducer的键值对

在我们的驱动程序中,我们可以将我们的减速器类称为组合器

job.setCombinerClass(MyReducer.class)
组合器
只能用于可交换和关联的函数

For example maximum of numbers

Map 1 output - (23,27, 31) -> Combiner -> 31
Map 2 output - (22,36,33,45) -> Combiner -> 45
Map 3 output - (41,33,15,16) -> Combiner -> 41

Combiner acts on each of the mapper's output.

Combiner output - (31,45,41) ->Reducer -> 45

从示例中可以明显看出,数据传输量现在减少了。

组合器用于映射器和还原器之间,以减少映射和还原阶段之间的数据传输量

Combiner
实现类似于reducer实现。它应该实现reduce接口的reduce方法。输入和输出键值对应类似于reducer的键值对

在我们的驱动程序中,我们可以将我们的减速器类称为组合器

job.setCombinerClass(MyReducer.class)
组合器
只能用于可交换和关联的函数

For example maximum of numbers

Map 1 output - (23,27, 31) -> Combiner -> 31
Map 2 output - (22,36,33,45) -> Combiner -> 45
Map 3 output - (41,33,15,16) -> Combiner -> 41

Combiner acts on each of the mapper's output.

Combiner output - (31,45,41) ->Reducer -> 45

从示例中可以明显看出,数据传输量现在减少了。

A组合器,也称为半减速机

组合器的主要功能是用相同的键汇总地图输出记录

合并器类用于Map类和Reduce类之间,以减少MapReduce之间的数据传输量

示例代码的解释

地图输入:

What do you mean by Object
What do you know about Java
What is Java Virtual Machine
How Java enabled High Performance
地图输出

<What,1> <do,1> <you,1> <mean,1> <by,1> <Object,1>
<What,1> <do,1> <you,1> <know,1> <about,1> <Java,1>
<What,1> <is,1> <Java,1> <Virtual,1> <Machine,1>
<How,1> <Java,1> <enabled,1> <High,1> <Performance,1>

请看一看在java@tutorialspoint中工作的情况,它是一种组合器,也称为半减速器

组合器的主要功能是用相同的键汇总地图输出记录

合并器类用于Map类和Reduce类之间,以减少MapReduce之间的数据传输量

示例代码的解释

地图输入:

What do you mean by Object
What do you know about Java
What is Java Virtual Machine
How Java enabled High Performance
地图输出

<What,1> <do,1> <you,1> <mean,1> <by,1> <Object,1>
<What,1> <do,1> <you,1> <know,1> <about,1> <Java,1>
<What,1> <is,1> <Java,1> <Virtual,1> <Machine,1>
<How,1> <Java,1> <enabled,1> <High,1> <Performance,1>

请看一看在java@tutorialspoint中工作的情况,它是一种组合器,也称为半减速器

组合器的主要功能是用相同的键汇总地图输出记录

合并器类用于Map类和Reduce类之间,以减少MapReduce之间的数据传输量

示例代码的解释

地图输入:

What do you mean by Object
What do you know about Java
What is Java Virtual Machine
How Java enabled High Performance
地图输出

<What,1> <do,1> <you,1> <mean,1> <by,1> <Object,1>
<What,1> <do,1> <you,1> <know,1> <about,1> <Java,1>
<What,1> <is,1> <Java,1> <Virtual,1> <Machine,1>
<How,1> <Java,1> <enabled,1> <High,1> <Performance,1>

请看一看在java@tutorialspoint中工作的情况,它是一种组合器,也称为半减速器

组合器的主要功能是用相同的键汇总地图输出记录

合并器类用于Map类和Reduce类之间,以减少MapReduce之间的数据传输量

示例代码的解释

地图输入:

What do you mean by Object
What do you know about Java
What is Java Virtual Machine
How Java enabled High Performance
地图输出

<What,1> <do,1> <you,1> <mean,1> <by,1> <Object,1>
<What,1> <do,1> <you,1> <know,1> <about,1> <Java,1>
<What,1> <is,1> <Java,1> <Virtual,1> <Machine,1>
<How,1> <Java,1> <enabled,1> <High,1> <Performance,1>

看看在java@tutorialspoint中的工作情况,合并器的工作与reducer相同,它可以实现reducer接口,并超越reduce方法。如果使用合并器,则较小的网络带宽足以将中间层(映射器的o/p)传输到reducer

如果在reducer中使用的应用程序同时遵循交换和关联,则可以在combiner reduce方法中使用相同的reduce方法(属于您自己的reducer)代码

For example maximum of numbers

Map 1 output - (23,27, 31) -> Combiner -> 31
Map 2 output - (22,36,33,45) -> Combiner -> 45
Map 3 output - (41,33,15,16) -> Combiner -> 41

Combiner acts on each of the mapper's output.

Combiner output - (31,45,41) ->Reducer -> 45
即使为MR(map reduce)应用程序编写合并器,也没有规则执行合并器。要执行合并器,请确保溢出数至少应为3

例如,我的映射器输出为,,,,,。 在没有合并器的情况下,我对减速机的输入是。
使用组合器,我可以将输入传递到reducer,就像这样。

组合器和reducer做相同的工作,它可以实现reducer接口,并超越它的reduce方法。如果使用组合器,则较小的网络带宽足以传输中间数据