Я хотел бы запускать кластер EMR каждый раз, когда запускается ноутбук Sagemaker.Однако я обнаружил, что сценарии конфигурации жизненного цикла не могут работать дольше 5 минут.К сожалению, мой кластер EMR занимает больше 5 минут.Это проблема, так как мне нужно подождать, пока кластер включится, чтобы получить главный IP-адрес (этот IP-адрес затем используется для настройки соединения между sagemaker notebbok и кластером).
Нижеизвлечение кода, который запускается в сценарии конфигурации жизненного цикла.
Есть ли кто-нибудь, кто сталкивался с подобной проблемой и нашел решение?
job_flow_id = client.run_job_flow(**CLUSTER_CONFIG)['JobFlowId']
...
...
# Retrieve private Ip of master node for later use
master_instance = client.list_instances(ClusterId=job_flow_id, InstanceGroupTypes=['MASTER'])['Instances'][0]
master_private_ip = master_instance['PrivateIpAddress']
# Send to sagemaker the config file in order to tell him how to communicate with spark
s3 = boto3.client('s3')
file_object = s3.get_object(Bucket='dataengine', Key='emr/example_config.json')
data = json.loads(file_object['Body'].read().decode('utf-8'))
data['kernel_python_credentials']['url'] = 'http://{}:8998'.format(master_private_ip)
data['kernel_scala_credentials']['url'] = 'http://{}:8998'.format(master_private_ip)
data['kernel_r_credentials']['url'] = 'http://{}:8998'.format(master_private_ip)
with open('./sparkmagic/config.json', 'w') as outfile:
json.dump(data, outfile)```