我使用Amazon Elastic MapReduce(Amazon EMR)创建了一个作业流程,由于某些未知原因,它失败了。然后我尝试通过AWS管理控制台终止作业流程,但禁用了“终止”按钮。然后我尝试使用CLI终止作业流程,它显示作业流程已终止,但在通过CLI以及管理控制台的Elastic MapReduce选项卡中看到作业流列表时仍显示为失败。
请告诉我如何从列表中删除作业流程。
当我尝试调试作业流程时,它显示两个错误:
答案 0 :(得分:8)
您在这里遇到两个问题:
首先,可以立即解决触发令您烦恼的Amazon EMR工作流程终止状态的问题:
我使用Amazon Elastic MapReduce(Amazon EMR)创建了一个工作流程 由于一些不明原因,它失败了。
工作流程失败的原因实际上可以从您提供的列表中的错误2中推断出来:
作业流程失败,原因是:无效的存储桶名称'testBucket':存储桶 名称必须只包含小写字母,数字,句点(。)和 破折号( - )。 [强调我的]
您的存储桶名称'testBucket'明显违反了规定的小写命名要求,因此仅将名称更改为小写(例如'testbucket'或'test-bucket')将允许您根据需要运行作业流程。
此外,Job Flow终止状态可能完全没有问题。虽然在极少数情况下可能会发生Amazon EC2实例或其他资源实际上停留在某些状态,但您所看到的一切都是完全合理且正常的:
首先完全终止作业流程可能需要一段时间,请参阅TerminateJobFlows:
对TerminateJobFlows的调用是异步的。取决于 工作流程的配置,可能需要5-20分钟 作业流程完全终止并释放已分配的 资源,例如Amazon EC2实例。 [强调我的]
即使终止的EC2资源也可能会列出很长一段时间,例如, AWS团队对EC2 Instance stuck in "terminated" state的回复:
终止意味着“永远消失”;虽然有时会挂在身边 用户界面几个小时。 [强调我的]
我经常见证EC2实例的这种行为,这种情况通常会在几个小时之后从实例列表中消失。因此,我怀疑已终止的工作流程已从您的工作流程列表中消失。
我确实怀疑情况确实如此,但我仍然无法在官方文件中找到相关信息;但是,显然已经终止的工作流程可能会以这种或那种方式显示长达两个月甚至,例如, AWS团队对Console not showing jobs older than a month的回复:
虽然控制台列出了所有正在运行的作业流程,但仅显示 上个月推出的终止工作流程。或者,你 可以使用Ruby CLI 列出最后两个中启动的所有作业流程 几个月,使用以下命令:[...] [强调我的]
答案 1 :(得分:0)
如果您的应用程序在hadoop纱线上运行,您可以随时使用纱线来管理您的应用程序:
yarn application -list
yarn application -kill application_name