We can generate storm jar using particular parameter. However, if we need to debug this project (actually a far) locally as well as remotely?
If it is simple jar, th
If you want to remote debug, you need to enable debugging in worker JVMs. See here for the correct Java flags: Remote debugging a Java application
Add this flags in all/shared supervisor storm.yaml
to entry worker.childopts
(it might be necessary to restart Storm cluster). You need to make sure, that only a single worker is stared per host! Otherwise, two JVMs want to open the same port and one will fail of course.
In Eclipse, choose Run -> Debug Configuration
and create a new Remote Java Application
. Specify the host and port (port must be the same as specified in worker.childopts
) of the running worker JVM you want to debug.
To enable debugging across the various supervisor VMs, all you have to do is edit the storm.yaml file and update the worker.childopts entry to something like:
worker.childopts: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5%ID%"
If you had your supervisors on ports 6700,6701,6702 etc., this would create a debug port on 56700,56701,56702 etc.