我正在尝试在连接到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年做出的,我希望在过去的两年里,脚本已经得到纠正或者有一个解决方法。如果有任何解决方法,如果有人能指出我,我将不胜感激。
感谢您在此之前阅读以及提供任何建议。
答案 0 :(得分:0)
除非您设置基于REST的Spark作业服务器,否则您无法提交除Master之外的作业 - 除非您设置了基于REST的Spark作业服务器。