Questionplanificateur Dask local ne se connecter aux travailleurs sur les ressources à distance
Comment puis-je indiquer l'adresse correcte des travailleurs Dask sur une ressource à distance à un planificateur Dask en cours d'exécution au niveau local?
Situation
J'ai une ressource à distance je peux ssh dans. Là, j'ai un conteneur docker qui exécute une image contenant toutes les dépendances dont j'ai besoin pour exécuter Dask, Distributed.
Lors de son exécution, le conteneur exécute les éléments suivants:
dask-worker --nprocs 14 --nthreads 1 {inet_addr_local}:878
Dans le même réseau, mais sur mon ordinateur portable, je cours un autre conteneur de la même image. Dans ce conteneur, je lance le planificateur Dask, comme ceci:
dask-scheduler --port 8786
Lorsque je démarre le planificateur, tout va bien. Quand je démarre le conteneur des travailleurs, il semble se connecter au planificateur. En l'état, je vois ce qui suit:
Waiting to connect to: tcp://{this_matches_inet_address_of_local}:8786
Sur le planificateur, je vois ce qui suit journalisés à plusieurs reprises, dans une boucle comme il essaie toujours de contacter/répondre à chacun des travailleurs:
distributed.scheduler - INFO - Remove worker tcp://172.18.0.10:41508
distributed.scheduler - INFO - Removed worker tcp://172.18.0.10:41508
distributed.scheduler - ERROR - Failed to connect to worker 'tcp://172.18.0.10:44590': Timed out trying to connect to 'tcp://172.18.0.10:44590' after 3 s: OSError: [Errno 113] No route to host
Le problème (je pense) peut être vu ici. tcp://172.18.0.10
est incorrect. Les travailleurs en cours d'exécution sur une ressource db.foo.net
que je peux ssh via [email protected]
.
À partir du conteneur du planificateur, je peux voir que je suis capable de ping db.foo.net
avec succès. Je pense que les travailleurs supposent que leur adresse est l'adresse locale du conteneur dans lequel ils se trouvent, et non db.foo.net
. J'ai besoin de remplacer cette valeur par défaut comme une sorte de configuration pour les travailleurs. Je pensais que --host
tag le ferait, mais cela provoque Tornado pour lancer l'erreur suivante: OSError: [Errno 99] Cannot assign requested address
.
Pouvez-vous trouver l'adresse IP numérique de votre travailleur, sinon 172.18.0.10? Est-ce sur une interface autre que eth0? – mdurant