随着今天 Spark 2.0 的发布,他们取消了对在 AWS 上启动 Spark EC2 集群的 native 支持:
Spark EC2 script has been fully moved to an external repository hosted by the UC Berkeley AMPLab
在 AMPLab GitHub 页面上,它包含以下说明:
https://github.com/amplab/spark-ec2/tree/branch-2.0#launching-a-cluster
Go into the ec2 directory in the release of Apache Spark you downloaded.
问题是 2.0 下载中没有 ec2 文件夹。有人知道如何在 EC2 中启动 Spark 2.0 集群吗?
提前致谢。
最佳答案
最后编辑
对于遇到此问题的人来说,答案更简单:here .
编辑2
我在第一次编辑后意识到它稍微复杂一些,因此这里有一个新的编辑,供将来可能会发现它有用的任何人使用。
问题是 Spark 不再提供 ec2 目录作为官方发行版的一部分。如果您习惯以这种方式启动独立集群,那么这就是一个问题。
解决方案很简单:
- 按照 Spark 2.0.0 文档中的详细说明下载官方 ec2 目录。
- 如果您只需将目录复制到 Spark 2.0.0 并运行
spark-ec2
可执行文件以模仿 Spark 1.* 中的工作方式,您将能够启动集群照常。但是当您通过 ssh 登录时,您会发现任何二进制文件都不再存在了。 - 因此,一旦您启动集群(就像通常使用第 1 步中下载的
spark-ec2
那样),您就必须rsync
您的本地将包含 Spark 2.0.0 的目录添加到新创建的集群的 master 中。完成此操作后,您可以像平常一样spark-submit
作业。
非常简单,但在我看来,Spark 文档对于我们所有普通人来说都可以清楚地说明这一点。
<小时/>编辑:这实际上是正确的做法。对于有同样问题的人:像 Spark 建议的那样从 AMPLab 下载 ec2 目录,将此文件夹放入本地 Spark-2.0.0 目录中,然后像往常一样启动脚本。显然他们只是为了维护目的而解耦目录,但逻辑仍然是相同的。如果能在 Spark 文档中对此进行一些介绍,那就太好了。
<小时/>我尝试了以下操作:将spark-ec2-branch-1.6目录从AMPLab链接克隆到我的spark-2.0.0目录中,并尝试使用通常的./ec2/spark-ec2启动集群
命令。也许这就是他们希望我们做的?
我正在启动一个小型 16 节点集群。我可以在 AWS 仪表板中看到它,但终端在过去一直打印常见的 SSH 错误......几乎两个小时。
警告:SSH 连接错误。 (这可能是暂时的。)
主机:ec2-54-165-25-18.compute-1.amazonaws.com
SSH 返回代码:255
SSH 输出:ssh:连接到主机 ec2-54-165-25-18.compute-1.amazonaws.com 端口 22:连接被拒绝
如果我发现任何有用的内容,我会更新。
关于amazon-web-services - 如何在 EC2 上启动 Spark 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38611573/