我刚开始练习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
有人能帮我理解这里发生了什么事吗?
谢谢,
1条答案
按热度按时间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
首先!创建作业流时,可以选择启用调试,因此可以执行以下操作:这意味着您的作业的所有日志最终都将被写入指定的s3 bucket(当然,您必须拥有这个bucket,并且拥有写入它的权限)。如果你这样做了,你可以进入aws控制台之后在电子病历部分,你将能够看到你的工作旁边的一个按钮,如下面的屏幕截图所示调试,这应该让你的生活更容易: