2017-06-05 95 views
0

用例: 我在防火墙后面,我有一个可以访问的远程Spark群集,但是这些机器无法直接连接到我。在防火墙后向Apache-Spark提交作业

火花doc规定是必要的工作人员,以便能够达到的驱动程序:

由于群集上的驱动程序调度任务,应该运行 靠近工作节点,最好在同一个局域网上。 如果您想远程向集群发送请求,最好 向驱动程序打开一个RPC,并让它从附近的 提交操作,而不是远离工作节点运行驱动程序。

建议的解决方案是让集群上的服务器进程在RPC上运行,并让它在本地执行spark驱动程序。

这样的程序是否已经存在?这样的过程应该管理1 + RPC,返回异常和处理日志。

此外,在这种情况下,我的本地程序或火花驱动程序谁必须创建SparkContext?

注: 我有一个独立的集群

解决方法1

一个简单的方法是使用集群模式(类似于--deploy-mode cluster)为独立的集群,但是doc说:

目前,独立模式不支持Python 应用程序的集群模式。

回答

1

只是几个选项:

  • 连接到使用ssh群集节点上,启动screen,提交星火申请,回去检查结果。
  • 在集群上部署中间件,如Job Server,Livy或Mist,并将其用于提交。
  • 在您的群集上部署笔记本(Zeppelin,Toree)并从笔记本提交应用程序。
  • 固定设置spark.driver.portssh通过其中一个群集节点转发所有连接,使用其IP为spark.driver.bindAddress