Anywhere, at least the versions should be the same.
The Bulk is an offline tool. But it needs a Zero group to lease UIDs. All Alphas should be shutdown. For bulk. But for Live Loader, you need the whole cluster running. And the Live also needs to lease UIDs from the Zero group. And write the data in the Alpha groups.
Not sure what you mean. But you can run Dgraph’s binary anywhere. But it needs to reach the cluster from outside if the case. And also have the same version of the cluster.
It does not have to be run from the zeros, it has to access the zeros while it’s running (to allocate uids).
You could run the bulk loader from your laptop with a port-forward to the zero leader if you want. The reason I do it in the init container of one alpha is to use the 16c 64GiB ram is has. (we have like 30billion edges in my dgraph cluster now)
But yes, the alphas should be down - otherwise they will do stuff with the zeros while the bulk loader does.