错误SparkContext:初始化SparkContext时出错。 java.net.BindException:无法分配请求的地址:服务'sparkDriver'失败

时间:2017-07-04 21:22:39

标签: scala apache-spark

我已安装以下设置版本: Hadoop版本1.0.3 java版“1.7.0_67” Scala版本2.11.7 Spark版本2.1.1。

低于错误,任何人都可以帮助我。

root@sparkmaster:/home/user# spark-shell
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
17/07/05 01:07:35 WARN SparkContext: Support for Java 7 is deprecated as of Spark 2.0.0
17/07/05 01:07:36 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
17/07/05 01:07:37 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.

17/07/05 01:07:37 ERROR SparkContext: Error initializing SparkContext.
java.net.BindException: Cannot assign requested address: Service 'sparkDriver' failed after 16 retries (starting from 0)! Consider explicitly setting the appropriate port for the service 'sparkDriver' (for example spark.ui.port for SparkUI) to an available port or increasing 


<console>:14: error: not found: value spark
       import spark.implicits._

<console>:14: error: not found: value spark
       import spark.sql


Using Scala version 2.11.8 (Java HotSpot(TM) Client VM, Java 1.7.0_67)
Type in expressions to have them evaluated.
Type :help for more information.

scala> 

5 个答案:

答案 0 :(得分:25)

有几种不同的解决方案

  1. 获取您的主机名

    $ hostname
    

    然后尝试分配您的主机名

    $ sudo hostname -s 127.0.0.1
    

    开始spark-shell

  2. 将您的主机名添加到/ etc / hosts文件(如果不存在)

    127.0.0.1      your_hostname
    
  3. 添加env变量

    export SPARK_LOCAL_IP="127.0.0.1" 
    
    load-spark-env.sh 
    
  4. 上述步骤解决了我的问题,但您也可以尝试添加

    export SPARK_LOCAL_IP=127.0.0.1 
    

    在模板文件spark-env.sh.template/usr/local/Cellar/apache-spark/2.1.0/libexec/conf/

    上的本地IP评论下

    然后

    cp spark-env.sh.template spark-env.sh
    spark-shell
    
  5. 如果以上都没有修复,请检查防火墙并启用它(如果尚未启用)

答案 1 :(得分:9)

SPARK_LOCAL_IP中添加load-spark-env.sh作为

export SPARK_LOCAL_IP="127.0.0.1"

load-spark-env.sh文件位于spark/bin目录

或者您可以将hostname文件中的/etc/hosts添加为

127.0.0.1   hostname 

您可以在终端

中输入hostname来获取hostname

希望这能解决问题!

答案 2 :(得分:1)

  • 我的IntelliJ中有类似的问题

    原因:我使用的是Cisco anyconnect VPN

    修复:与VPN断开连接,此问题未出现

答案 3 :(得分:0)

    通过输入hostname在您的终端
  1. ,您可以查看当前的主机名。
  2. vim /etc/hosts并将您刚刚获得的主机名设置为您的确切IP或127.0.0.1。

答案 4 :(得分:0)

当您在使用 spark 时切换网络时, 这是由于网络切换造成的。

要立即修复,您必须在“localhost”模式下添加“spark.driver.bindAddress”或在 Spark 应用程序中添加“127.0.0.1”

// Create a SparkContext using every core of the local machine
val confSpark = new SparkConf().set("spark.driver.bindAddress", "localhost")
val sc = new SparkContext("local[*]", "appname", conf = confSpark)