Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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
Mapreduce 映射器和减速器是否应该是内部类?_Mapreduce - Fatal编程技术网

Mapreduce 映射器和减速器是否应该是内部类?

Mapreduce 映射器和减速器是否应该是内部类?,mapreduce,Mapreduce,在O'Reilly Hadoop指南中,mapper和reducer类的实现首先在单独的文件中介绍。页面之后,它将它们显示为内部类 在我编写和处理的工作中,我发现在一个类中绑定映射器和还原器的实现要困难得多。所以我的惯例是编写独立的顶级类。这是否正确?您可以将它们作为内部类或单独的类编写。第二个是更好的实践。从java程序的角度来看,内部类和外部类之间肯定存在一些差异,其中一个主要优势是 嵌套类表示一种特殊类型的关系,即它可以访问外部类(包括private)的所有成员(数据成员和方法) 在Map

在O'Reilly Hadoop指南中,mapper和reducer类的实现首先在单独的文件中介绍。页面之后,它将它们显示为内部类


在我编写和处理的工作中,我发现在一个类中绑定映射器和还原器的实现要困难得多。所以我的惯例是编写独立的顶级类。这是否正确?

您可以将它们作为内部类或单独的类编写。第二个是更好的实践。

从java程序的角度来看,内部类和外部类之间肯定存在一些差异,其中一个主要优势是

嵌套类表示一种特殊类型的关系,即它可以访问外部类(包括private)的所有成员(数据成员和方法)

在MapReduce程序中,由于mapper和reducer使用内部类彼此独立运行,因此肯定不会提供任何编程优势

书中使用内部类的主要原因是可读性和易用性。任何试图从书中复制代码的新手都可以将整个代码复制粘贴到一个单独的Java文件中(如果是电子书)并执行程序

仅供参考: 请参阅此文档以了解何时使用内部类