Apache storm Storm 1.0.1提交拓扑时出现工作错误

Apache storm Storm 1.0.1提交拓扑时出现工作错误,apache-storm,Apache Storm,在向Storm 1.0.1提交拓扑时,我收到以下错误(worker.log)(尽管有错误,拓扑确实已提交,并且出现在Storm UI中): 在supervisor.log中也找到了此条目: o.a.s.util [WARN] Worker Process ea92e1b7-c870-4b4c-b0a6-00272f27f521:# There is insufficient memory for the Java Runtime Environment to continue. 但是,“fre

在向Storm 1.0.1提交拓扑时,我收到以下错误(worker.log)(尽管有错误,拓扑确实已提交,并且出现在Storm UI中):

在supervisor.log中也找到了此条目:

o.a.s.util [WARN] Worker Process ea92e1b7-c870-4b4c-b0a6-00272f27f521:# There is insufficient memory for the Java Runtime Environment to continue.
但是,“free-m”命令表示有足够的可用内存


进一步的消息似乎表明worker无法启动,supervisor.log随后多次启动日志信息消息“{id of worker process}仍然没有启动。”

从您的问题来看,您似乎在
linux平台下运行storm,因此在linux中,出于安全考虑,操作系统将为单个进程提供多达N个线程。如果您的java程序跨越超过N个线程,那么您将得到这样的异常。为此,您需要增加在以下文件中配置的N值

/proc/sys/kernel/threads-max

检索当前N值:

cat /proc/sys/kernel/threads-max
echo 123456789 > /proc/sys/kernel/threads-max

将N值更新为新值:

cat /proc/sys/kernel/threads-max
echo 123456789 > /proc/sys/kernel/threads-max

希望有帮助。

从您的问题来看,您似乎在
linux平台下运行storm,因此在linux中,出于安全考虑,操作系统将为单个进程提供多达N个线程。如果您的java程序跨越超过N个线程,那么您将得到这样的异常。为此,您需要增加在以下文件中配置的N值

/proc/sys/kernel/threads-max

检索当前N值:

cat /proc/sys/kernel/threads-max
echo 123456789 > /proc/sys/kernel/threads-max

将N值更新为新值:

cat /proc/sys/kernel/threads-max
echo 123456789 > /proc/sys/kernel/threads-max

希望能有所帮助。

我将卡夫卡和暴风雪分开,现在它们在不同的虚拟机上运行。拓扑现在运行正常,没有任何错误

我将kafka和storm分离,现在它们在不同的虚拟机上运行。拓扑现在运行正常,没有任何错误

您在storm.yaml?@Jaya supervisor.childopts:-Xmx2048m“worker.heap.memory.mb:2048 worker.childopts:-Xmx2048m”中提到的worker参数是什么?在storm.yaml?@Jaya supervisor.childopts:-Xmx2048m“worker.heap.memory.mb:2048 worker.childopts:-Xmx2048m”谢谢你的回复。它认为这更像是一个工作内存分配问题,而不是无法生成更多线程。此外,群集以前工作正常,不确定是什么原因导致此问题。即使使用sudo,我也尝试将“/proc/sys/kernel/threads max”的值加倍,但不断出现权限被拒绝的错误。更新:我已经安装了另一台ubuntu计算机,只有2 GB内存,storm拓扑可以正常工作。我收到错误的机器是一个内存为8GB的虚拟机。不确定这里的问题是什么。内存为2GB的机器(拓扑运行正常)>31569和内存为8GB的机器(拓扑出错)>61911更新2:我已经分离了kafka和storm,现在它们在单独的虚拟机上运行。拓扑现在运行正常,没有任何错误。感谢回复。它认为这更像是一个工作内存分配问题,而不是无法生成更多线程。此外,群集以前工作正常,不确定是什么原因导致此问题。即使使用sudo,我也尝试将“/proc/sys/kernel/threads max”的值加倍,但不断出现权限被拒绝的错误。更新:我已经安装了另一台ubuntu计算机,只有2 GB内存,storm拓扑可以正常工作。我收到错误的机器是一个内存为8GB的虚拟机。不确定这里的问题是什么。内存为2GB的机器(拓扑运行正常)>31569和内存为8GB的机器(拓扑出错)>61911更新2:我已经分离了kafka和storm,现在它们在单独的虚拟机上运行。拓扑现在运行正常,没有任何错误。