错误:等待ssh时输入的jobflow已完成

wdebmtf2  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(321)

我刚开始练习aws电子病历。
我有一个样本字计数应用程序设置,运行和完成从网页界面。
按照这里的指导原则,我已经设置了命令行界面。
所以当我运行命令时:

./elastic-mapreduce --list

我收到

j-27PI699U14QHH     COMPLETED      ec2-54-200-169-112.us-west-2.compute.amazonaws.comWord count
   COMPLETED      Setup hadoop debugging        
   COMPLETED      Word count

现在,我想看看日志文件。我执行命令

./elastic-mapreduce --ssh --jobflow j-27PI699U14QHH

然后我收到以下错误:

Error: Jobflow entered COMPLETED while waiting to ssh

有人能帮我理解这里发生了什么事吗?
谢谢,

woobm2wo

woobm2wo1#

当您在emr上设置作业时,这意味着amazon将在有限的时间内按需为您提供一个集群。在此期间,您可以自由 ssh 访问集群并查看日志,但当作业完成运行时,集群将被关闭!到那时,您将无法再使用ssh,因为您的集群根本不存在。
工作流通常如下所示:
创建作业流
状态会持续几分钟 STARTING . 如果你想跑的话 ./elastic-mapreduce --ssh --jobflow <jobid> 它只是等待,因为集群还不可用。
一段时间后,状态将切换到 RUNNING . 如果你已经开始 ssh 上面的命令会自动将您连接到集群。否则你可以启动你的 ssh 命令,它应该直接连接您而不需要任何等待。
根据你的工作性质 RUNNING 这一步可能需要一段时间,也可能很短,这取决于您处理的数据量和计算的性质。
处理完所有数据后,状态将切换到 SHUTTING_DOWN . 在那一点上,如果你已经 ssh 在你断开连接之前先把它弄好。如果你想用 ssh 命令时,它将无法连接。
一旦集群完成关闭,它将进入一个终端状态,即 COMPLETED 或者 FAILED 取决于你的工作是否成功。此时您的集群不再可用,如果您尝试 ssh 你会看到你看到的错误。
当然也有例外,您可以在交互模式下设置emr集群,例如,您只需要设置hive,然后 ssh 然后运行配置单元查询,您必须手动关闭集群。但是如果您只想运行mapreduce作业,那么您只能 ssh 在工作期间。
也就是说,如果您只想进行调试,那么甚至不需要进行调试 ssh 首先!创建作业流时,可以选择启用调试,因此可以执行以下操作:

./elastic-mapreduce --create --enable-debugging --log-uri s3://myawsbucket

这意味着您的作业的所有日志最终都将被写入指定的s3 bucket(当然,您必须拥有这个bucket,并且拥有写入它的权限)。如果你这样做了,你可以进入aws控制台之后在电子病历部分,你将能够看到你的工作旁边的一个按钮,如下面的屏幕截图所示调试,这应该让你的生活更容易:

相关问题