省流:
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}")