省流:
1.两个不同wifi下的ray节点要手动配置参数‘--node-ip-address’
2.注意是--node-ip-address不是--node_ip_address注意下划线
我使用python下的ray分布式
能正常连接 但是gcs心跳根本连接不上
检查后发现:
不同的分布式节点不在同一个ip,所以会导致bootstrap_address的公网ip通过get_node_ip_address把公网ip变成当前局域网的ip,但是客户端本身和服务器端不是一个公网ip,就会导致服务器端把客户端自己的局域网ip当成gcs_server的连接ip,但是他们不在一个网下所以肯定是找不到的!
代码::
from ray._private.services import RAYLET_EXECUTABLE, GCS_SERVER_EXECUTABLE
from ray.scripts.scripts import start, stop, status
def start_new_node(self, head_node_ip, head_node_port, name):
# 初始化Ray,连接到现有集群
from requests import get
ip = get('http://ipgrab.io').content.decode('utf8').strip()
ctx = start.make_context('start',
[
'--address', f'{head_node_ip}:{head_node_port}',
'--resources', f'{json.dumps(custom_resources)}',
'--node-name', name,
'--node-ip-address', ip,
],
)
result = start.invoke(ctx)
print(f"Started {result}")
标签:node,wifi,--,ip,work,start,address,ray
From: https://www.cnblogs.com/d37eirin/p/18572080