反应迟钝星火主(Unresponsive Spark Master)

2019-10-21 22:03发布

我试图运行在Mac上的单机模式简单星火应用程序。

我管理运行./sbin/start-master.sh启动主服务器和工人。

./bin/spark-shell --master spark://MacBook-Pro.local:7077也适用,我可以看到它在主WebUI中运行的应用程序列表

现在我想要写一个简单的火花应用程序。

import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.SparkContext._

object SimpleApp {
  def main(args: Array[String]) {
    val conf = new SparkConf().setAppName("Simple Application")
                          .setMaster("spark://MacBook-Pro.local:7077")
    val sc = new SparkContext(conf)

    val logFile = "README.md"
    val logData = sc.textFile(logFile, 2).cache()
    val numAs = logData.filter(line => line.contains("a")).count()
    val numBs = logData.filter(line => line.contains("b")).count()
    println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
  }
}

运行这个简单的应用程序给我错误消息法师是反应迟钝

15/02/15 09:47:47 INFO AppClient$ClientActor: Connecting to master spark://MacBook-Pro.local:7077...
15/02/15 09:47:48 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkMaster@MacBook-Pro.local:7077] has failed, address is now gated for [5000] ms. Reason is: [Disassociated].
15/02/15 09:48:07 INFO AppClient$ClientActor: Connecting to master spark://MacBook-Pro.local:7077...
15/02/15 09:48:07 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkMaster@MacBook-Pro.local:7077] has failed, address is now gated for [5000] ms. Reason is: [Disassociated].
15/02/15 09:48:27 INFO AppClient$ClientActor: Connecting to master spark://MacBook-Pro.local:7077...
15/02/15 09:48:27 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkMaster@MacBook-Pro.local:7077] has failed, address is now gated for [5000] ms. Reason is: [Disassociated].
15/02/15 09:48:47 ERROR SparkDeploySchedulerBackend: Application has been killed. Reason: All masters are unresponsive! Giving up.
15/02/15 09:48:47 WARN SparkDeploySchedulerBackend: Application ID is not initialized yet.
15/02/15 09:48:47 ERROR TaskSchedulerImpl: Exiting due to error from cluster scheduler: All masters are unresponsive! Giving up.

任何想法是什么问题? 谢谢

Answer 1:

您可以致电时设置主spark-submit ,或(如你在这里所做的)由通过显式地设置SparkConf 。 尝试以下在该示例火花配置文档 ,并设置主如下:

val conf = new SparkConf().setMaster("local[2]")

在同一页面(解释后面括号内的数字local ):“请注意,我们与当地的[2],这意味着两个线程运行-它代表‘最小’的并行性,它可以帮助检测错误,只有当我们运行中存在分布式语境“。



Answer 2:

我得到了同样的问题终于解决了。 在我的情况,因为我写了基于2.11阶的源代码。 但对于火花,我用下面的默认命令Maven构建它:

build/mvn -Phadoop-2.4 -Dhadoop.version=2.4.0 -DskipTests clean package

根据这一构建脚本,它将阶的版本设置为2.10版本。 由于星火客户端和主机之间的不同阶的版本,它会引发不兼容的序列化时,通过远程演员掌握客户端发送消息。 最后,“所有的高手都没有响应”在控制台中显示错误消息。

我的解决方案:斯卡拉2.11 1.重新构建火花(请确保您的编程ENV到斯卡拉2.11)。 请SPARK_HOME如下运行以下命令:

dev/change-version-to-2.11.sh
mvn -Pyarn -Phadoop-2.4 -Dscala-2.11 -DskipTests clean package

建立之后,包将位于SPARK_HOME /组件/目标/阶-2.11。 如果您在使用start-all.sh启动火花的服务器,它会报告目标包无法找到。

  1. 去conf文件夹,编辑spark-env.sh文件。 追加如下的代码行:

    出口SPARK_SCALA_VERSION = “2.11”

  2. 请运行start-all.sh,并设置正确的主网址在你的程序,并运行它。 它完成了!

注意:在控制台中的错误信息是不够的。 所以,你需要切换到检查发生什么你的日志功能。 你可以去conf文件夹,并复制到log4j.properties.template log4j.properties。 火花主开始后,日志文件将保存在SPARK_HOME / logs文件夹。



Answer 3:

我写我的Java代码,但我跟你有同样的问题。 因为我的斯卡拉版本是2.10,我的依赖性是2.11。 然后,我改变火花core_2.11和火花sql_2.11到火花core_2.10和火花sql_2.10在pom.xml中。 也许你可以解决类似的方式您的问题。

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.10</artifactId>
    <version>${spark.version}</version>
</dependency>

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_2.10</artifactId>
    <version>${spark.version}</version>
</dependency>


文章来源: Unresponsive Spark Master