hadoop windows (工作正常) linux java heap space (工作正常)

问题描述 投票:0回答:1

我的问题是这样的:首先,我使用hadoop和一个单节点配置来开发应用程序,我只做了一个map函数,在这个map函数中,我调用了大约10个函数,应用程序从csv中读取数据。 首先,我使用hadoop和单节点配置来开发一个应用程序,我只做了一个map函数,在这个map函数中,我调用了10个函数,应用程序从csv文件中读取并处理某个列。我已经做了jar文件和所有的东西,所以当我在windows(windows 7)(使用cygwin)的4GB内存的机器上运行这个有4000行的csv的应用程序时,这个应用程序工作得很好,但是当我在linux-ubuntu的2GB内存的机器上运行它时,它处理了一些行,然后它抛出了一个 "Java堆空间 "的错误,或者有时线程被杀死。

对于linux:我已经尝试改变hadoop导出HEAP_SIZE和Xmx和Xms参数的应用程序,它有一些区别,但不是太多,错误仍然发生......

你知道为什么会发生这种情况吗?因为机器之间的4GB和2GB内存的差异?

java linux heap hadoop space
1个回答
0
投票

我在mapper中遇到的一个问题是,如果你调用使用函数objects,从内部启动自己的线程,就会出现 map 函数,这可以很容易地创建足够的线程来使用该JVM的所有堆空间。setupcleanup 函数调用一次。在我的情况下,我能够处理并将其放入一个叫做 ArrayList 所有的数据,然后再对我需要的数据进行额外的处理。cleanup 职能。

© www.soinside.com 2019 - 2024. All rights reserved.