Macのspark-shellSparkContextの初期化中にエラーが発生しました


87

Mac OS Yosemite10.10.5でspark1.6.0(spark-1.6.0-bin-hadoop2.4)を起動しようとしました。

"./bin/spark-shell". 

以下のエラーがあります。また、異なるバージョンのSparkをインストールしようとしましたが、すべて同じエラーが発生します。Sparkを実行するのはこれが2回目です。以前の実行は正常に機能します。

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.6.0
      /_/

Using Scala version 2.10.5 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_79)
Type in expressions to have them evaluated.
Type :help for more information.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
16/01/04 13:49:40 ERROR SparkContext: Error initializing SparkContext.
java.net.BindException: Can't assign requested address: Service 'sparkDriver' failed after 16 retries!
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:444)
    at sun.nio.ch.Net.bind(Net.java:436)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:125)
    at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:485)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1089)
    at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:430)
    at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:415)
    at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:903)
    at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:198)
    at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:348)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:357)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
    at java.lang.Thread.run(Thread.java:745)
java.net.BindException: Can't assign requested address: Service 'sparkDriver' failed after 16 retries!
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:444)
    at sun.nio.ch.Net.bind(Net.java:436)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:125)
    at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:485)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1089)
    at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:430)
    at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:415)
    at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:903)
    at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:198)
    at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:348)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:357)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
    at java.lang.Thread.run(Thread.java:745)

java.lang.NullPointerException
    at org.apache.spark.sql.SQLContext$.createListenerAndUI(SQLContext.scala:1367)
    at org.apache.spark.sql.hive.HiveContext.<init>(HiveContext.scala:101)
    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:526)
    at org.apache.spark.repl.SparkILoop.createSQLContext(SparkILoop.scala:1028)
    at $iwC$$iwC.<init>(<console>:15)
    at $iwC.<init>(<console>:24)
    at <init>(<console>:26)
    at .<init>(<console>:30)
    at .<clinit>(<console>)
    at .<init>(<console>:7)
    at .<clinit>(<console>)
    at $print(<console>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065)
    at org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1346)
    at org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840)
    at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871)
    at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:819)
    at org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:857)
    at org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:902)
    at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:814)
    at org.apache.spark.repl.SparkILoopInit$$anonfun$initializeSpark$1.apply(SparkILoopInit.scala:132)
    at org.apache.spark.repl.SparkILoopInit$$anonfun$initializeSpark$1.apply(SparkILoopInit.scala:124)
    at org.apache.spark.repl.SparkIMain.beQuietDuring(SparkIMain.scala:324)
    at org.apache.spark.repl.SparkILoopInit$class.initializeSpark(SparkILoopInit.scala:124)
    at org.apache.spark.repl.SparkILoop.initializeSpark(SparkILoop.scala:64)
    at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1$$anonfun$apply$mcZ$sp$5.apply$mcV$sp(SparkILoop.scala:974)
    at org.apache.spark.repl.SparkILoopInit$class.runThunks(SparkILoopInit.scala:159)
    at org.apache.spark.repl.SparkILoop.runThunks(SparkILoop.scala:64)
    at org.apache.spark.repl.SparkILoopInit$class.postInitialization(SparkILoopInit.scala:108)
    at org.apache.spark.repl.SparkILoop.postInitialization(SparkILoop.scala:64)
    at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply$mcZ$sp(SparkILoop.scala:991)
    at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945)
    at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945)
    at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135)
    at org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$process(SparkILoop.scala:945)
    at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1059)
    at org.apache.spark.repl.Main$.main(Main.scala:31)
    at org.apache.spark.repl.Main.main(Main.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

<console>:16: error: not found: value sqlContext
         import sqlContext.implicits._
                ^
<console>:16: error: not found: value sqlContext
         import sqlContext.sql

次に追加します

export SPARK_LOCAL_IP="127.0.0.1"

spark-env.shに、エラーは次のように変更されます。

 ERROR : No route to host
    java.net.ConnectException: No route to host
        at java.net.Inet6AddressImpl.isReachable0(Native Method)
        at java.net.Inet6AddressImpl.isReachable(Inet6AddressImpl.java:77)
        at java.net.InetAddress.isReachable(InetAddress.java:475)
...
<console>:10: error: not found: value sqlContext
       import sqlContext.implicits._
              ^
<console>:10: error: not found: value sqlContext
       import sqlContext.sql

作業中のマシン10.10.5で-その変数をエクスポートすると(異なる)エラーも発生するので、とにかく修正されているとは思いません。それがなければ、それはうまく動作します。詳細情報を取得するために、DEBUGログレベルで実行してみましたか?
jbrown 2016年

1
これは、Sparkが現在ipv6でうまく機能していないことが原因である可能性があります。試してみませんかbin/spark-shell --driver-java-options "-Djava.net.preferIPv4Stack=true"
zsxwing 2016年

@zsxwing試しましたが、同様のエラーが発生しました16/01/05 10:29:39 ERROR : No route to host 16/01/05 10:29:39 ERROR : No route to host java.net.ConnectException: No route to host at java.net.Inet4AddressImpl.isReachable0(Native Method) at java.net.Inet4AddressImpl.isReachable(Inet4AddressImpl.java:70) at java.net.InetAddress.isReachable(InetAddress.java:475) at java.net.InetAddress.isReachable(InetAddress.java:434) at tachyon.util.NetworkUtils.getLocalIpAddress(NetworkUtils.java:122) at tachyon.util.NetworkUtils.getLocalHostName(NetworkUtils.java:78)...
Jia

おそらく、マシンのネットワーク構成に問題があります。やってみping 127.0.0.1ませんか?
zsxwing 2016年

@zsxwing ping 127.0.0.1を試しましたが、問題なく動作します。
Jia

回答:


139

次の手順が役立つ場合があります。

  1. 「hostname」コマンドを使用してホスト名を取得します。

  2. 次のように存在しない場合は、ホスト名の/ etc / hostsファイルにエントリを作成します。

    127.0.0.1      your_hostname
    

お役に立てれば!!


アドバイスをありがとう。jupyterクライアントからsparkContextを作成しようとしたときに、ubuntujupyterサーバーで同様の問題が発生しました。ホストファイルにマッピングを追加すると、問題が修正されました:-)
Julien Bachmann

2
Macで「sudonano / private / etc / hosts」を編集する必要があります
Saeed

1
実行するとping $(hostname)、これは127.0.0.1に解決される必要があります
Thomas Decaux 2017

私のためにそれを修正しました。ありがとう!
アンドレス・メヒア

1
このコマンドを実行すると、また私のために助けた- > sudoのホスト名-s 127.0.0.1
MRTJ

119

ネットワークを切り替えるとき、私はいつもそれを受け取ります。これはそれを解決します:

$ sudo hostname -s 127.0.0.1


4
これは私にもうまくいきました。私の場合、企業VPNにログインした直後に発生します。Sparkアプリを開発している間、これを週に2、3回実行する必要があります。
AdrianVeidt 2017

企業
VPN-

1
GNU / Linuxの場合:$ sudo hostname -b 127.0.0.1
orluke 2018年

1
驚くばかり。私も企業VPNのためにこれに直面し、これで修正されました。
Dileep Kumar Patchigolla 2018

1
ありがとう、それはうまくいきました。なぜそれが機能するのか説明していただけますか?
vitalii

34

現在のマスターブランチからバージョンバージョンでビルドしました2.0.0-SNAPSHOT。それに追加export SPARK_LOCAL_IP="127.0.0.1"load-spark-env.shた後、私のために働いた。Macos10.10.5を使用しています。それで、それはバージョンの問題である可能性がありますか?


3
使用できました$ SPARK_LOCAL_IP="127.0.0.1" gradle my-gradle-task-using-local-spark。VPNを使用すると問題が発生しました。Macos10.11.1を使用しています。
Sergey Orshanskiy 2016年

31

spark.driver.hostIDEを使用している場合は、をローカルホストに設定するだけです

SparkConf conf = new  SparkConf().setMaster("local[2]").setAppName("AnyName").set("spark.driver.host", "localhost");
JavaSparkContext sc = new JavaSparkContext(conf);

local [2]はどういう意味ですか?マスターを「ローカル」に設定し、spark.driver.hostプロパティを設定したところ、問題が修正されました。
medloh 2017

spark.driver.host$SPARK_HOME/conf/spark-defaults.conf
StephenBoesch 2017年

これは私が探している正確な解決策です。出来た。IDEを使用している場合にのみ必要なのはなぜですか?これは非IDEテストに影響しますか?
仏陀

8

私が思うに2つのエラーがあります。

  1. SparkローカルIPが正しくなかったため、127.0.0.1に変更する必要があります。
  2. sqlContextを適切に定義していません。

1.について:私は試しました:

  • 1)〜/ .bash_profileにSPARK_LOCAL_IP = "127.0.0.1"をエクスポートしました
  • 2)$ SPARK_HOMEの下のload-spark-env.shにエクスポートSPARK_LOCAL_IP = "127.0.0.1"を追加しました

しかし、どちらも機能しませんでした。それから私は以下を試しました、そしてそれはうまくいきました:

val conf = new SparkConf().
    setAppName("SparkExample").
    setMaster("local[*]").
    set("spark.driver.bindAddress","127.0.0.1")
val sc = new SparkContext(conf)

2.の場合、次のことを試すことができます。

sqlContext = SparkSession.builder.config("spark.master","local[*]").getOrCreate()

その後 import sqlContext.implicits._

SparkSessionのビルダーは、存在する場合は自動的にSparkContextを使用し、存在しない場合は作成します。必要に応じて、明示的に2つ作成できます。


7

Macのホスト名を変更したくない場合は、次のようにすることができます。

  1. テンプレートファイルを探す spark-env.sh.templateお使いのマシンでます(おそらくにあります/usr/local/Cellar/apache-spark/2.1.0/libexec/conf/)。
  2. cp spark-env.sh.template spark-env.sh
  3. export SPARK_LOCAL_IP=127.0.0.1ローカルIPのコメントの下に追加します。

始めてspark-shell楽しんでください。


4

Scalaを使用してIDEでコードを実行していて、同じ問題に直面していて、上記のようにSparkConf()を使用しておらず、SparkSession()を使用している場合は、次のようにローカルホストアドレスをバインドできます。 SparkConf()で。以下に示すように、.config()を使用してSpark構成を設定する必要があります。

    val spark = SparkSession
       .builder()
       .appName("CSE512-Phase1")
       .master("local[*]").config("spark.driver.bindAddress", "localhost")
       .getOrCreate()


2

ファイアウォールがソケットの作成とバインドを妨げる場合があります。ファイアウォールが有効になっていないことを確認してください。また、/ etc / hostsでマシンのIPをチェックし、問題がないことを確認してから、再試行する必要があります。

sudo ufw disable

1
おっと。Linuxでヘッズアップをありがとう
Mahdi Esmailoghli 2016

2

これは、異なるネットワーク(VPN-PROD、異なる環境にアクセスするための会社のネットワークに基づくCI)を切り替えたときに発生します。

VPNを切り替えるたびに、同じ問題が発生しました。

Macのホスト名値でsudo / etc / hostsを更新します。


2
sparkContext = new JavaSparkContext("local[4]", "Appname")

export SPARK_LOCAL_IP=127.0.0.1

上記を行うだけでうまくいきました。


0

Macの場合、[システム設定]-> [ネットワーク]->接続しているWi-Fiをクリックします(緑色のアイコンが表示されます)->ネットワーク名のすぐ上にあるIPを確認します。

../conf/spark-env.shに次のエントリを作成します。

SPARK_MASTER_HOST=<<your-ip>>
SPARK_LOCAL_IP=<<your-ip>>

そしてスパークシェルを試してみてください。上記の変更を行うことは私のために働いた。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.