【问题标题】:error when starting the spark shell启动 spark shell 时出错
【发布时间】:2016-07-21 04:31:16
【问题描述】:

我刚刚下载了最新版本的 spark,当我启动 spark shell 时出现以下错误:

java.net.BindException: Failed to bind to: /192.168.1.254:0: Service 'sparkDriver' failed after 16 retries!
    at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:272)
    at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:393)
    at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:389)

...
...

java.lang.NullPointerException
    at org.apache.spark.sql.SQLContext.<init>(SQLContext.scala:193)
    at org.apache.spark.sql.hive.HiveContext.<init>(HiveContext.scala:71)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at org.apache.spark.repl.SparkILoop.createSQLContext(SparkILoop.scala:1028)
    at $iwC$$iwC.<init>(<console>:9)
...
...
<console>:10: error: not found: value sqlContext
       import sqlContext.implicits._
              ^
<console>:10: error: not found: value sqlContext
       import sqlContext.sql
              ^

在设置 spark 时有什么遗漏的吗?

【问题讨论】:

  • 通过运行'spark-shell',它在C:下创建目录\tmp\hive,有同样的问题\错误,结果证明是该文件夹的权限问题。只需将它移到您的 %HADOOP_HOME%\bin 下,然后以管理员身份重新启动 cmd。在完成堆栈溢出建议的任何可能修复后,它对我来说就像一个魅力。

标签: apache-spark


【解决方案1】:

尝试将 Spark 环境变量 SPARK_LOCAL_IP 设置为本地 IP 地址。

就我而言,我在 Amazon EC2 Linux 实例上运行 Spark。 spark-shell 停止工作,出现与您类似的错误消息。我可以通过将如下设置添加到 Spark 配置文件 spark-env.conf 来修复它。

export SPARK_LOCAL_IP=172.30.43.105

也可以在 ~/.profile 或 ~/.bashrc 中设置。

同时检查/etc/hosts中的主机设置

【讨论】:

    【解决方案2】:

    SPARK-8162

    看起来它只影响 1.4.1 和 1.5.0 - 您最好运行最新版本(撰写本文时为 1.4.0)。

    【讨论】:

    • 我已经尝试了 1.4.0、1.3.1 和 1.3.0 的预构建版本,它们都有相同的错误。我在 osx 上使用 Java 7。
    【解决方案3】:

    我遇到了同样的问题。首先到 .bashrc 并把

    export SPARK_LOCAL_IP=172.30.43.105
    

    然后转到

    cd $HADOOP_HOME/bin
    

    然后运行以下命令

    hdfs dfsadmin -safemode leave
    

    这只是关闭你的namenode的安全模式。

    然后从 spark 主文件夹或 /bin 中删除 metastore_db 文件夹。它通常位于您通常从中启动 spark 会话的文件夹中。

    然后我用这个运行了我的 spark-shell

    spark-shell --master "spark://localhost:7077"
    

    瞧,我没有收到 sqlContext.implicits._ 错误。

    【讨论】:

      猜你喜欢
      • 2016-01-10
      • 1970-01-01
      • 2016-09-23
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      • 1970-01-01
      • 1970-01-01
      • 2015-12-01
      相关资源
      最近更新 更多