java - 如何增加 Accumulo 代理服务器上的内存?

标签 java memory out-of-memory accumulo

当前正在运行一个大数据作业,该作业正在向 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/

相关文章:

C++ 模板和 header 分配

Mysql:内存表达到max_heap_table_size怎么办?

java - 试图以 500 分的增量提高我的游戏速度,但我有太多 if 语句。

c++ - c++ 删除内存

java - 检查字符串是否在列表中的最优雅/惯用的方法是什么?

java - 缓存一个 Map 变量并跨四个 tomcat 服务器访问它(java)

java - 带有 Jackson token 流的 JSON 中的非常长的字符串(> 1 gig)

java - 线程 "main"java.lang.OutOfMemoryError : Java heap space 中的异常

Java SQL查询准备语句动态参数

java - ByteBuddy静态方法拦截@Origin方法