【发布时间】:2017-04-25 22:00:33
【问题描述】:
我目前正在从一个包含 Apache Zeppelin + Spark 2.x 的普通发行版构建一个自定义 docker 容器。
我的 Spark 作业将在远程集群中运行,并且我使用 yarn-client 作为主服务器。
当我运行笔记本并尝试打印sc.version 时,程序卡住了。如果我转到远程资源管理器,则已创建并接受了一个应用程序,但在日志中我可以阅读:
INFO yarn.ApplicationMaster: Waiting for Spark driver to be reachable
我对这种情况的理解是集群无法与容器中的驱动程序对话,但我不知道如何解决这个问题。
我目前正在使用以下配置:
-
spark.driver.port设置为PORT1和选项-p PORT1:PORT1传递给容器 -
spark.driver.host设置为172.17.0.2(容器的 ip) -
SPARK_LOCAL_IP设置为172.17.0.2(容器的 ip) -
spark.ui.port设置为PORT2和选项-p PORT2:PORT2传递给容器
我觉得我应该将 SPARK_LOCAL_IP 更改为主机 ip,但如果这样做,SparkUI 将无法启动,从而阻止了进程。
提前感谢您的任何想法/建议!
【问题讨论】:
-
感谢您的回答,但实际上,如果我将
spark.driver.host设置为不同的(例如主机IP),则驱动程序无法在第一阶段启动(java.net.BindException: Cannot assign requested address: Service 'sparkDriver' failed)。
标签: apache-spark docker apache-zeppelin