Usecase:我在防火墙后面,我有一个可以访问的远程星火集群,但是这些机器不能直接连接到我。
正如火花文档所指出的,工人必须能够到达驱动程序:
因为驱动程序计划集群上的任务,所以应该在工作节点附近运行,最好是在同一局域网上运行。如果希望远程向集群发送请求,最好向驱动程序打开RPC并让它从附近提交操作,而不是在远离工作节点的地方运行驱动程序。
建议的解决方案是让服务器进程在集群上运行,侦听RPC,并让它在本地执行火花驱动程序。
这样的程序已经存在了吗?这样的过程应该管理1+ RPC,返回异常和处理日志。
在这种情况下,我的本地程序还是必须创建SparkContext的火花驱动程序?
注:我有一个独立的集群。
Solution1
一个简单的方法是对独立集群使用集群模式(类似于--deploy-mode cluster),但是文档说:
目前,独立模式不支持Python应用程序的集群模式。
发布于 2017-06-05 17:59:01
只有几个选择:
ssh连接到集群节点,启动screen,提交Spark应用程序,然后返回检查结果。spark.driver.port和ssh通过一个集群节点转发所有连接,使用其IP作为spark.driver.bindAddress。https://stackoverflow.com/questions/44373741
复制相似问题