根据你的问题,我推测你在寻找一个你看不见的物体。 在本例中,您正在寻找 MAPPER object 但你没有发现 NEW 关键字在程序中的任何位置。 总而言之。怎样 A.class 正在转换为 A a = new A(); ? 以及 WHY? 简单地说,如果没有java或hadoop中的对象,就不能做任何事情。 因此,将为所述类创建幕后对象以执行程序。在高层,我们可以说这个机制内置于hadoop中,用于根据需要创建对象。 在更高的层次上他们使用 JAVA Reflection API 在引擎盖下进行无缝操作。 为什么需要这样做?-- THE REASONS 因为我们不知道以下问题的答案: 文件大小是多少? Number of Mappers 基于这些信息。 有多少个输入拆分(一些对象基于此)? 输入和输出有多少个键/值对(这里还有一些对象)? mapper/reducer/etc.(其他x.class输入和相关对象) 因为我们不知道 How many(total number) Objects are needed? 以及 When(execution time in program) they are needed? 我们需要依赖一个更高端的api,比如反射来在运行时处理它们。 那个 Reflection API used by HADOOP 负责提供 OBJECT 对于输入 CLASS 根据时间的需要。 希望这能澄清。
2条答案
按热度按时间6ljaweal1#
根据你的问题,我推测你在寻找一个你看不见的物体。
在本例中,您正在寻找
MAPPER object
但你没有发现NEW
关键字在程序中的任何位置。总而言之。怎样
A.class
正在转换为A a = new A();
? 以及WHY?
简单地说,如果没有java或hadoop中的对象,就不能做任何事情。因此,将为所述类创建幕后对象以执行程序。在高层,我们可以说这个机制内置于hadoop中,用于根据需要创建对象。
在更高的层次上他们使用
JAVA Reflection API
在引擎盖下进行无缝操作。为什么需要这样做?--
THE REASONS
因为我们不知道以下问题的答案:文件大小是多少?
Number of Mappers
基于这些信息。有多少个输入拆分(一些对象基于此)?
输入和输出有多少个键/值对(这里还有一些对象)?
mapper/reducer/etc.(其他x.class输入和相关对象)
因为我们不知道
How many(total number) Objects are needed?
以及When(execution time in program) they are needed?
我们需要依赖一个更高端的api,比如反射来在运行时处理它们。那个
Reflection API used by HADOOP
负责提供OBJECT
对于输入CLASS
根据时间的需要。希望这能澄清。
8gsdolmq2#
正如您可能已经观察到的,hadoop中的作业是由map reduce框架以分布式方式执行的。
因此,实际作业将通过将工作划分为多个Map器和约简器来执行,其中每个Map/约简作业实际上是一个java进程,将由集群中许多随机节点上的任务容器来执行。
我们在作业配置中提到的设置只是有关作业的规范。根据此设置,将在随机jvm任务容器上创建所需的mapper/reducer示例。
将示例化的map/reduce对象从job config传递到每个分布式节点的任务容器(实际的map/reduce任务将在其中执行)是没有效率的,而是可以根据作业设置在容器上按需创建这样的示例。
希望这有帮助。