运行Spark代码时,如何解决“无法分配请求的地址:16次重试后服务'sparkDriver'失败”的问题?

时间:2018-09-02 03:25:19

标签: scala apache-spark

我正在用intelliJ学习spark + scala,从下面的一小段代码开始

.map()

在尝试运行时,低于异常

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

object ActionsTransformations {

  def main(args: Array[String]): Unit = {
    //Create a SparkContext to initialize Spark
    val conf = new SparkConf()
    conf.setMaster("local")
    conf.setAppName("Word Count")
    val sc = new SparkContext(conf)

    val numbersList = sc.parallelize(1.to(10000).toList)

    println(numbersList)
  }

}

任何人都可以建议做什么。

8 个答案:

答案 0 :(得分:3)

在spark / bin目录中的load-spark-env.sh文件中添加SPARK_LOCAL_IP

导出SPARK_LOCAL_IP =“ 127.0.0.1”

答案 1 :(得分:2)

有时问题与连接的 VPN 或类似问题有关!只需断开您的 VPN 或任何其他可能影响您的网络连接的工具,然后重试。

答案 2 :(得分:0)

我认为 setMaster setAppName 将返回一个新的SparkConf对象,而行conf.setMaster("local")conf无效变量。因此,您应该尝试:

val conf = new SparkConf()
    .setMaster("local[*]")
    .setAppName("Word Count")

答案 3 :(得分:0)

好像您使用了旧版本的spark。在您的情况下,请尝试添加以下行:

conf.set("spark.driver.bindAddress", "127.0.0.1")

如果您将使用Spark 2.0+,则应遵循以下技巧:

val spark: SparkSession = SparkSession.builder()
.appName("Word Count")
.master("local[*]")
.config("spark.driver.bindAddress", "127.0.0.1")
.getOrCreate()

答案 4 :(得分:0)

conf.set("spark.driver.bindAddress", "127.0.0.1")

添加bindAddress对我有用。

答案 5 :(得分:0)

这与pySpark的相同错误对我有用:

from pyspark import SparkContext, SparkConf
conf_spark = SparkConf().set("spark.driver.host", "127.0.0.1")
sc = SparkContext(conf=conf_spark)

答案 6 :(得分:0)

以下应该可以解决问题:

sudo hostname -s 127.0.0.1

答案 7 :(得分:-1)

spark试图绑定的端口似乎已在使用中。成功运行几次火花后,此问题是否开始发生?您可能要检查那些以前运行的火花进程是否仍然存在,并且是否保留了某些端口(简单的jps / ps -ef应该告诉您)。如果是,请终止这些进程,然后重试。