Airflow安装在EC2上,它正在触发EMR上的脚本。 如果我使用" Clear" UI中的选项,UI显示具有关闭状态的任务,但我仍然可以看到在EMR上运行的任务。
我正在使用的Airflow正在运行 LocalExecutor ,我想知道如何杀死正在运行的任务。
我应该使用" Clear" UI中的选项可以停止正在运行的任务吗?或使用清除任务以及一些代码更改
以下是我的代码
def execute_on_emr(cmd):
f = open(file,'r')
s = f.read()
keyfile = StringIO.StringIO(s)
mykey = paramiko.RSAKey.from_private_key(keyfile)
sshcon = paramiko.SSHClient()
sshcon.set_missing_host_key_policy(paramiko.AutoAddPolicy())
sshcon.connect(IP, username=username, pkey=mykey)
stdin, stdout, stderr = sshcon.exec_command(cmd)
logger.info("stdout ------>"+str(stdout.readlines()))
logger.info("Error--------->"+str(stderr.readlines()))
if (stdout.channel.recv_exit_status())!= 0:
logger.info("Error Return code not Zero:"+
str(stdout.channel.recv_exit_status()))
sys.exit(1)
Task = PythonOperator(
task_id='XXX',
python_callable=execute_on_emr,
op_kwargs={'cmd': 'spark-submit /hadoop/scripts.py'},
dag=dag)
我的问题是如何从Airflow UI中杀死/停止任务,以便在EMR上运行的任务也被杀死。
提前致谢。
的问候,阿赫亚