我有两个集群,一个在本地虚拟机上,另一个在远程云端。两个集群都处于独立模式。
我的环境:
Scala: 2.10.4
Spark: 1.5.1
JDK: 1.8.40
OS: CentOS Linux release 7.1.1503 (Core)
本地集群:
Spark Master: spark://local1:7077
远程集群:
Spark Master: spark://remote1:7077
我想完成以下操作:
在IntelliJ IDEA本地(在我的笔记本电脑上)编写代码(只是简单的字数统计),并将Spark Master URL设置为spark://local1:7077
和spark://remote1:7077
,然后在IntelliJ IDEA中运行我的代码。也就是说,我不想使用spark-submit
提交作业。
但我遇到了一些问题:
当我使用本地集群时,一切都很顺利。在IntelliJ IDEA中运行代码或使用spark-submit可以将作业提交到集群并完成作业。
但是当我使用远程集群时,我得到了一个警告日志:
TaskSchedulerImpl:初始作业没有接受任何资源;请检查您的集群UI以确保工作程序已注册并具有足够的资源
这是足够的资源而不是足够的内存!
而且这个日志一直打印,没有进一步的操作。无论是使用spark-submit
还是在IntelliJ IDEA中运行代码,结果都是一样的。
我想知道:
- 是否可以从IntelliJ IDEA将代码提交到远程集群?
- 如果可以,是否需要进行配置?
- 可能导致我的问题的可能原因是什么?
- 我该如何处理这个问题?
非常感谢!
更新
这里有一个类似的问题(链接),但我认为我的场景不同。当我在IntelliJ IDEA中运行我的代码,并将Spark Master
设置为本地虚拟机集群时,它可以工作。但是我得到了Initial job has not accepted any resources;...
警告。
我想知道安全策略或防火墙是否会导致此问题?
spark-submit
。 - WestCoastProjects