- 检查EMR集群是否处于运行状态。如果EMR集群已停止或正在启动,笔记本可能无法进入“运行”状态。可以使用以下代码片段来检查集群的状态:
import boto3
emr_client = boto3.client('emr')
cluster_name = 'your_cluster_name'
cluster_id = None
response = emr_client.list_clusters(
ClusterStates=['RUNNING', 'WAITING'],
CreatedAfter=datetime.now() - timedelta(hours=1),
CreatedBefore=datetime.now(),
)
for cluster in response['Clusters']:
if cluster['Name'] == cluster_name:
cluster_id = cluster['Id']
if cluster_id is None:
print(f"No {cluster_name} cluster found")
else:
print(f"Cluster {cluster_name} is running")
- 检查EMR笔记本实例是否处于正常状态。可以使用以下代码片段来检查笔记本实例的状态:
import boto3
emr_client = boto3.client('emr')
notebook_name = 'your_notebook_name'
notebook_instance_id = None
response = emr_client.list_notebook_instances()
for notebook in response['NotebookInstances']:
if notebook['NotebookInstanceName'] == notebook_name:
notebook_instance_id = notebook['NotebookInstanceId']
if notebook_instance_id is None:
print(f"No {notebook_name} notebook instance found")
else:
notebook_instance_info = emr_client.describe_notebook_instance(NotebookInstanceName=notebook_name)
notebook_instance_status = notebook_instance_info['NotebookInstanceStatus']
if notebook_instance_status == 'Pending':
print(f"{notebook_name} notebook instance is pending")
elif notebook_instance_status == 'InService':
print(f"{notebook_name} notebook instance is running")
elif notebook_instance_status == 'Stopped':
print(f"{notebook_name} notebook instance is stopped")
else:
print(f"{notebook_name} notebook instance has unexpected status: {notebook_instance_status}")
- 检查EMR笔记本的网络和安全