在EC2上使用Spark的IPython笔记本:初始作业未接受任何资源

时间:2016-08-05 10:27:16

标签: amazon-ec2 ipython pyspark

我正在尝试在连接到AWS EC2集群的Spark中运行IPython笔记本中的简单WordCount作业。当我在本地独立模式下使用Spark时,该程序工作正常,但当我尝试将其连接到EC2集群时会抛出问题。

我已采取以下步骤

我已遵循此Supergloo blogpost中的说明。

在我尝试将输出写入文件的最后一行之前没有发现错误。 [Spark的延迟加载功能意味着当程序真正开始执行时]

这是我收到错误的地方

[Stage 0:>                                                          (0 + 0) / 2]16/08/05 15:18:03 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

实际上没有错误,我们有这个警告,程序进入无限期等待状态。在我杀死IPython笔记本之前没有任何事情发生。

我已经看到了这个Stackoverflow post并且在主命令

之后使用此选项将核心数量减少到1并将内存减少到512
--total-executor-cores 1 --executor-memory 512m

SparkUI的屏幕截图如下 sparkUI

这清楚地表明核心和UI都没有得到充分利用。

最后,我从StackOverflow post看到了

  

spark-ec2脚本将EC2中的Spark Cluster配置为独立的,   这意味着它不能用于远程提交。我一直在努力   你在几天之前描述了同样的错误,然后才发现它不是   支持的。遗憾的是,邮件错误不正确。

     

所以你必须复制你的东西并登录主人来执行你的   火花任务。

如果情况确实如此,那么没有什么可以做的了,但是由于这个声明是在2014年做出的,我希望在过去的两年里,脚本已经得到纠正或者有一个解决方法。如果有任何解决方法,如果有人能指出我,我将不胜感激。

感谢您在此之前阅读以及提供任何建议。

1 个答案:

答案 0 :(得分:0)

除非您设置基于REST的Spark作业服务器,否则您无法提交除Master之外的作业 - 除非您设置了基于REST的Spark作业服务器。