Change from port 10000, ClusterODM, and NodeODM instances

I now have 5 systems running WebODM (1) and NodeODM (4) and I suppose the natural progression is to use ClusterODM. I already use Webmin on my systems and Webmin already uses port 10000 for its web management pages. Can I change ClusterODM’s default port to something other than port 10000?

Also, just out of curiosity, can ClusterODM split a task between nodes, or does it just send one task to one node at a time?

1 Like

Yes just pass --admin-web-port 10001 to the program arguments (if you’re running natively).

ClusterODM can handle the orchestration of splitting a task to multiple nodes. See https://docs.opendronemap.org/large.html#distributed-split-merge

2 Likes

Can the cluster controller host be added to WebODM as a single processing node so that the cluster controller sends tasks to each available node, or is it strictly activated from command line?

docker run -ti --rm -v /my/project:/datasets/code opendronemap/odm --project-path /datasets --split 800 --split-overlap 120 --sm-cluster http://:3001

ClusterODM looks just like NodeODM to WebODM, so you can absolutely wire WebODM <> ClusterODM <> NodeODM(s). Once you have done this, you don’t require setting the --sm-cluster flag.

1 Like

I’ll be writing up some documentation on this process, so keep the questions coming. It will help me understand what needs documented.

Also, if you haven’t done so, run NodeODM with --help, and set the capacities of your nodes (number of images they can process, etc.), especially if they are uneven in size. This will give ClusterODM the info it needs to send the appropriate node each task.

1 Like

I have memory that will be delivered tomorrow, so once I install that, these systems will be equals. I’ll update their settings then.

1 Like

Hi Stephen,

I’m very new to using docker for anything. I’ve been avoiding it for too long and barely know how to use it even for this. I’m trying to learn, but I also have a ton of other things on my plate, all vying for my precious time. I need more hours in a day.

All the new instances I’ve brought up have been using docker, at least the four NodeODM instances. My WebODM is natively installed, but since this last go around, I was unable to get NodeODM to run. At @ pierotofy’s recommendation, I installed NodeODM using docker and it is working fine for that. Now, comes my new problem. I’m not sure how I’m supposed to follow your suggestion to run NodeODM with --help so I can set the specific values.

I start the docker instances using

`sudo docker run -ti -d --restart unless-stopped -p 3000:3000 opendronemap/nodeodm’

But, now how do I interact with NodeODM outside of the WebODM environment? I’m not sure how I am supposed to interact with it at the command line. I’ve tried looking at the documents at https://github.com/OpenDroneMap/NodeODM, but I don’t see anything specific about it.

In my use case, should I have installed it natively? I’m not opposed to that at all, but I don’t see any OS requirements listed like WebODM has (Using Ubuntu 16.4 LTS). Currently, all my node machines are running Ubuntu Server 20.04. Will NodeODM install natively with that?

I understand well the problem of too many projects!

To get the help menu for NodeODM, run docker run --rm opendronemap/nodeodm --help. The two main options you want to set are --max_images and --max_concurrency.

2 Likes