我已经创建了 EC2 密钥对并将其保存到 Mac 上我的主目录下的一个位置。我还使用“chmod 600 /path/to/saved/keypair/file.pem”更改了权限。现在我按照以下说明在 EC2 上运行 pig 作业:
要设置并连接到 pig 集群,请执行以下步骤:
- 去http://console.aws.amazon.com/elasticmapreduce/home如果需要的话请签到。
- 点击“创建集群”。
- 输入“数据科学作业集群”或任何您希望的内容作为集群名称。
- 取消选中“日志记录”框以将其禁用。
- 向下滚动到软件配置并选择 AMI 版本 2.4.2(我们将使用 Hadoop 1.x 以兼容 Pig 版本)
- 向下滚动到“安全和访问”并选择您上面创建的密钥对。
- 滚动到底部并选择“创建集群”
- 在下一页上,将显示有关您的集群的信息。它将以“正在启动”状态开始,可能需要几分钟才能完全启动。
- 集群启动后,您将看到“主公共 DNS”名称,格式为 ec2-XX-XXX-X-XXX.compute-1.amazonaws.com。记下此名称;我们将其称为 master.public-dns-name.amazonaws.com。
- 现在,您可以连接到集群并运行 Pig 作业。从终端使用以下命令:$ ssh -o "ServerAliveInterval 10" -i /path/to/saved/keypair/file.pem [电子邮件保护]
- 一旦连接成功,只需输入
$ pig- 现在你应该听到猪发出
咕噜声了>
在步骤 10 中执行 ssh 命令后,我在按回车键后会得到一个 '>' 提示符。此外,如果我在 '>' 提示符下输入 pig,那么我会在下一行再次得到一个 '>' 提示符,而不是预期的'grunt>' 提示。我已检查我的 Mac 上是否安装了 ssh,并在系统偏好设置下的“共享”设置中为所有用户启用了远程登录。这里似乎有什么问题?
答案1
问题似乎是由步骤 10 的 ssh 命令中的 EC2 密钥对的路径名生成的。我的密钥对在桌面上。因此,之前,我尝试从 HOME$ 提示符执行 ssh 命令,并在说明的步骤 10 的 ssh 命令中将密钥对文件的路径名指定为“/desktop/key-pair-filename.pem”,但它不起作用。
但是,我在终端窗口中切换到桌面目录(“cd 桌面”)。之后,我执行 ssh 命令,这次只需输入“key-pair-filename.pem”而不是“/desktop/key-pair-filename.pem”,它就可以正常工作了。