Amazon web services AWS EMR:正在从Jupyter EMR笔记本中查找用于终止群集的AWS EMR命令

Amazon web services AWS EMR:正在从Jupyter EMR笔记本中查找用于终止群集的AWS EMR命令,amazon-web-services,jupyter-notebook,Amazon Web Services,Jupyter Notebook,我的使用案例是:我在企业环境中使用AWS EMR笔记本(Python/PySpark/Spark内核)中的敏感数据,该笔记本连接到AWS EMR集群(因此权限有限)。有时,我会将许多单元格排成一列,完成这些单元格需要不同的时间。在停止笔记本并终止群集之前,我不想一直监视我的笔记本,等待单元格完成,我希望能够对终止AWS EMR群集的单元格进行排队 为此,在阅读其他SO帖子/文档的基础上,我需要我的集群id。似乎要找到它,我还需要一个实例ID 以下代码适用于我: !wget -q -O - htt

我的使用案例是:我在企业环境中使用AWS EMR笔记本(Python/PySpark/Spark内核)中的敏感数据,该笔记本连接到AWS EMR集群(因此权限有限)。有时,我会将许多单元格排成一列,完成这些单元格需要不同的时间。在停止笔记本并终止群集之前,我不想一直监视我的笔记本,等待单元格完成,我希望能够对终止AWS EMR群集的单元格进行排队

为此,在阅读其他SO帖子/文档的基础上,我需要我的
集群id
。似乎要找到它,我还需要一个实例ID

以下代码适用于我:

!wget -q -O - http://169.254.169.254/latest/meta-data/instance-id
但由于找不到命令或权限被拒绝的问题,我无法使以下几行正常工作

!aws emr list-clusters --active --query "Clusters[*].{Name:Name}" --output text
You must specify a region. You can also configure your region by running "aws configure".
我正在寻找一个简单的命令或一组命令,我可以把它放在一个单元格中运行,以终止我的笔记本电脑连接到的集群。我的工作流程是:在每个工作日开始时,使用新名称创建一个新集群,并在工作日结束时终止该集群。鉴于此,我希望该命令不必在集群名称每次更改时都更改。如果可能的话,我还希望避免运行
aws configure

参考资料


这适用于emr笔记本中的emr-5.30.1:

import os
emr_cluster_id = os.environ.get('EMR_CLUSTER_ID')
emr_step_id = os.environ.get('EMR_STEP_ID')
为了安全起见,如果未定义
EMR\u CLUSTER\u ID
则要引发异常,则可以使用以下方法:

emr_cluster_id = os.environ['EMR_CLUSTER_ID']
有关其他有用的变量,请参见Spark History server环境选项卡

然后,要终止您的集群,下面的命令应该有效(未测试)


这适用于emr笔记本中的emr-5.30.1:

import os
emr_cluster_id = os.environ.get('EMR_CLUSTER_ID')
emr_step_id = os.environ.get('EMR_STEP_ID')
为了安全起见,如果未定义
EMR\u CLUSTER\u ID
则要引发异常,则可以使用以下方法:

emr_cluster_id = os.environ['EMR_CLUSTER_ID']
有关其他有用的变量,请参见Spark History server环境选项卡

然后,要终止您的集群,下面的命令应该有效(未测试)