Reputation: 57
I have a Stormcrawler topology (slightly modified from generated one) that will work fine for those 30s in local mode, but when I add --remote
and submit it, it is registered with Storm, but simply idles around without any values emitted or transferred.
I've had things like this before, but nothing much can be found in the logs to indicate what the problem is (there are more logs than I can read though).
Has anyone seen this before?
Chris
Update:
Ok, found this in the worker.log
:
2019-07-06 17:04:40.531 STDERR Thread-0 [INFO] Unrecognized VM option 'PrintGCDateStamps'
2019-07-06 17:04:40.531 STDERR Thread-1 [INFO] [0.000s][warning][gc] -Xloggc is deprecated. Will use -Xlog:gc:artifacts/gc.log instead.
2019-07-06 17:04:40.534 STDERR Thread-0 [INFO] Error: Could not create the Java Virtual Machine.
2019-07-06 17:04:40.535 STDERR Thread-0 [INFO] Error: A fatal exception has occurred. Program will exit.
My guess is that I'm using too new a Java version (11.0.3)? So I could just remove those JVM opts?
Upvotes: 1
Views: 723
Reputation: 91
I encountered a similar error in my worker log.
The error said failed to create java virtual machine
:
It turns out that default options for JVM on worker nodes are outdated. Here are default options:
worker.childopts: "-Xmx%HEAP-MEM%m -XX:+PrintGCDetails -Xloggc:artifacts/gc.log -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=artifacts/heapdump"
I removed GC options by overriding in storm.yaml
file
worker.heap.memory.mb: 768 worker.childopts: "-Xmx%HEAP-MEM%m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=artifacts/heapdump" worker.gc.childopts: ""
After this update, I restarted storm nodes. The error cannot start java virtual machine
went away. All my spouts and bolts were able to process the data
Upvotes: 4