Hadoop独立模式和伪分布式模式下的数据流差异?

Hadoop独立模式和伪分布式模式下的数据流差异?,hadoop,mapreduce,Hadoop,Mapreduce,有人能告诉我Hadoop独立模式和伪分布式模式的数据流有什么不同吗。事实上,我试图运行一个由约翰·诺斯塔德提出的矩阵乘法的例子。它在hadoop独立模式下运行良好,但在伪分布式模式下无法正常工作。我无法修复该问题,因此请告诉我hadoop独立模式和伪分布式模式之间的原理差异,这有助于修复所述问题。谢谢 里根 WL在独立模式下,所有内容(namenode、datanode、tasktracker、jobtracker)都在一台机器上的一个JVM中运行。在伪分布式模式下,所有东西都在各自的JVM中运

有人能告诉我Hadoop独立模式和伪分布式模式的数据流有什么不同吗。事实上,我试图运行一个由约翰·诺斯塔德提出的矩阵乘法的例子。它在hadoop独立模式下运行良好,但在伪分布式模式下无法正常工作。我无法修复该问题,因此请告诉我hadoop独立模式和伪分布式模式之间的原理差异,这有助于修复所述问题。谢谢

里根


WL

在独立模式下,所有内容(namenode、datanode、tasktracker、jobtracker)都在一台机器上的一个JVM中运行。在伪分布式模式下,所有东西都在各自的JVM中运行,但仍然在一台机器上运行。就客户端接口而言,应该没有什么区别,但如果在伪分布式模式下序列化要求更严格,我也不会感到惊讶

我对上述内容的推理是,在伪分布式模式下,必须序列化所有内容才能在JVM之间传递数据。在独立模式下,并非严格要求所有内容都是可序列化的(因为所有内容都在一个JVM中,您拥有共享内存),但我不记得编写代码是否利用了这一事实,因为这不是Hadoop的正常用例


编辑:鉴于您没有看到错误,我认为这听起来像是MapReduce作业编码方式的问题。也许他依赖于一些类似于还原者之间共享记忆的东西?如果是这样的话,这将在独立模式下工作,但不会在伪分布式模式(或者真正分布式模式)下工作。

在独立模式下,所有内容(namenode、datanode、tasktracker、jobtracker)都在一台机器上的一个JVM中运行。在伪分布式模式下,所有东西都在各自的JVM中运行,但仍然在一台机器上运行。就客户端接口而言,应该没有什么区别,但如果在伪分布式模式下序列化要求更严格,我也不会感到惊讶

我对上述内容的推理是,在伪分布式模式下,必须序列化所有内容才能在JVM之间传递数据。在独立模式下,并非严格要求所有内容都是可序列化的(因为所有内容都在一个JVM中,您拥有共享内存),但我不记得编写代码是否利用了这一事实,因为这不是Hadoop的正常用例


编辑:鉴于您没有看到错误,我认为这听起来像是MapReduce作业编码方式的问题。也许他依赖于一些类似于还原者之间共享记忆的东西?如果是这样的话,这将在独立模式下工作,但不会在伪分布式模式(或者真正分布式模式)下工作.

在伪分布式模式下会出现什么错误?它不会给出任何运行时错误,但在某些情况下矩阵乘法的答案是不正确的。在伪分布式模式下会出现什么错误?它不会给出任何运行时错误,但在某些情况下矩阵乘法的答案是不正确的。因为我在这方面不是专家领域您能告诉我需要检查哪些因素来表明它依赖于共享内存吗?映射器类、还原器类或它们使用的任何自定义类中是否有静态变量?映射器或还原器类中是否没有静态变量。但是是的,有一些定义为静态的全局变量正在这些类中使用。这几乎肯定是问题所在。您可能需要重新处理作业以实现适当的分布式操作。但问题是,有4种不同的乘法策略。其中2个工作正常,但2个不工作(即使对于某些值,这2个也工作)。如果静态变量是个问题,那么它不应该一直是个问题吗?如果我错了,请纠正我,因为我不是这方面的专家。您能告诉我需要检查哪些因素来表明它依赖于共享内存吗?映射器类、还原器类或它们使用的任何自定义类中是否有静态变量?映射器或还原器类中是否没有静态变量。但是是的,有一些定义为静态的全局变量正在这些类中使用。这几乎肯定是问题所在。您可能需要重新处理作业以实现适当的分布式操作。但问题是,有4种不同的乘法策略。其中2个工作正常,但2个不工作(即使对于某些值,这2个也工作)。如果静态变量是个问题,那么它不应该一直是个问题吗?如果我错了,请纠正我。