当前正在运行一个大数据作业,该作业正在向 Accumulo 表中执行大量小插入,但是运行大约一个小时后总会出现 OOM 异常
2018-10-09 12:19:17,345 [rpc.CustomNonBlockingServer$CustomFrameBuffer] WARN : Got an IOException in internalRead!
java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
at sun.nio.ch.IOUtil.read(IOUtil.java:197)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
at org.apache.thrift.transport.TNonblockingSocket.read(TNonblockingSocket.java:142)
at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.internalRead(AbstractNonblockingServer.java:539)
at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.read(AbstractNonblockingServer.java:338)
at org.apache.thrift.server.AbstractNonblockingServer$AbstractSelectThread.handleRead(AbstractNonblockingServer.java:203)
at org.apache.thrift.server.TNonblockingServer$SelectAcceptThread.select(TNonblockingServer.java:203)
at org.apache.thrift.server.TNonblockingServer$SelectAcceptThread.run(TNonblockingServer.java:154)
#
# java.lang.OutOfMemoryError: Java heap space
# -XX:OnOutOfMemoryError="kill -9 %p"
# Executing /bin/sh -c "kill -9 71952"...
Killed
当您通过命令行或配置文件启动代理服务器时,有没有办法增加内存?他们的文档很多余,并且没有提供太多洞察力。
./bin/accumulo proxy -p proxy/proxy.properties #增加内存的选项
最佳答案
您正在执行的 bin/accumulo
命令是一个 bash
shell 脚本,它在您所在的位置提供 conf/accumulo-env.sh
d 通常设置一些 Java 命令行选项。
所提供的启动脚本在 Accumulo 2.x 之前的版本中有点令人困惑,但预计在 2.0.0 及更高版本中会更简单、更直接/直观。在 1.9.x(可能还有一些早期版本)中,您可以在 conf/accumulo-env.sh
文件中添加适当的 Java 标志来增加 ACCUMULO_OTHER_OPTS
环境的内存。
关于java - 如何增加 Accumulo 代理服务器上的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52951412/