apache-spark - 连接到 Mesos 的 Spark-shell 卡在 sched.cpp

标签 apache-spark mesos

以下是我的spark-defaults.confspark-shell 的输出

$ cat conf/spark-defaults.conf
spark.master                     mesos://172.16.**.***:5050
spark.eventLog.enabled           false
spark.broadcast.compress         false
spark.driver.memory              4g
spark.executor.memory            4g
spark.executor.instances         1

$ bin/spark-shell
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Using Spark's repl log4j profile: org/apache/spark/log4j-defaults-repl.properties
To adjust logging level use sc.setLogLevel("INFO")
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 1.5.2
      /_/

Using Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_80)
Type in expressions to have them evaluated.
Type :help for more information.
15/11/15 04:56:11 WARN MetricsSystem: Using default name DAGScheduler for source because spark.app.id is not set.
I1115 04:56:12.171797 72994816 sched.cpp:164] Version: 0.25.0
I1115 04:56:12.173741 67641344 sched.cpp:262] New master detected at master@172.16.**.***:5050
I1115 04:56:12.173951 67641344 sched.cpp:272] No credentials provided. Attempting to register without authentication

它无限期地卡在这里,而 Mesos Web UI 显示许多 Spark 框架正在旋转——不断注册和取消注册,直到我退出 spark-shell使用 Ctrl-C。

Mesos Web UI

我怀疑这部分是由于我的笔记本电脑有多个 IP 地址造成的。在服务器上运行时,它继续到下一行,以及通常的 Scala REPL:
I1116 09:53:30.265967 29327 sched.cpp:641] Framework registered with 9d725348-931a-48fb-96f7-d29a4b09f3e8-0242
15/11/16 09:53:30 INFO mesos.MesosSchedulerBackend: Registered as framework ID 9d725348-931a-48fb-96f7-d29a4b09f3e8-0242
15/11/16 09:53:30 INFO util.Utils: Successfully started service 'org.apache.spark.network.netty.NettyBlockTransferService' on port 57810.
15/11/16 09:53:30 INFO netty.NettyBlockTransferService: Server created on 57810
15/11/16 09:53:30 INFO storage.BlockManagerMaster: Trying to register BlockManager
15/11/16 09:53:30 INFO storage.BlockManagerMasterEndpoint: Registering block manager 172.16.**.***:57810 with 2.1 GB RAM, BlockManagerId(driver, 172.16.**.***, 57810)
15/11/16 09:53:30 INFO storage.BlockManagerMaster: Registered BlockManager
15/11/16 09:53:30 INFO repl.Main: Created spark context..
Spark context available as sc.

我正在运行由 Mesosphere 构建的 Mesos 0.25.0,我正在设置 spark.driver.host到 Mesos 集群中所有机器都可以访问的地址。我看到 spark-shell 开放的每个端口的进程绑定(bind)到该 IP 地址或 * .

The most similar question on StackOverflow似乎没有帮助,因为在这种情况下,我的笔记本电脑应该可以从主机访问。

我找不到可能包含未注册框架的原因的日志文件。我应该在哪里寻找来解决这个问题?

最佳答案

Mesos 对网络的工作原理有一个非常奇怪的概念——特别是,您可以在 Master 和 Framework 之间建立双向通信非常重要。所以双方需要有相互的网络路由。如果你在 NAT 或容器后面运行,你之前遇到过这种情况——通常你需要设置 LIBPROCESS_IP到您在框架端可公开访问的 IP。也许这也适用于多宿主系统,例如您的笔记本电脑。

您可以在互联网上找到更多信息,但遗憾的是没有很好的文档记录。有a hint on their Deployment Scripts page尽管。

关于apache-spark - 连接到 Mesos 的 Spark-shell 卡在 sched.cpp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33727154/

相关文章:

java - Spark : Error While Writing DataFrame to CSV

sql - 如何在 Scala 中获取每个 ID 的电子邮件数量

apache-spark - Mesos 上 Apache Spark 的自定义状态存储提供程序

azure - Azure 容器服务上的 Marathon - 无法扩展到所有节点

jenkins - 使用具有马拉松和Mesos的持久卷在docker内部运行jenkins的权限错误

scala - 使用正则表达式进行 Spark 过滤

apache-spark - SparkSession : ActiveSession vs DefaultSession

python - Databricks - 在 Python 中创建函数 (UDF)

apache-spark - 了解 mesos 上 spark 作业的资源分配

apache - 无法在 Ubuntu 16.04 桌面上安装 mesos