Mac Spark-shell 오류 초기화 SparkContext


87

Mac OS Yosemite 10.10.5에서 spark 1.6.0 (spark-1.6.0-bin-hadoop2.4)을 시작하려고했습니다.

"./bin/spark-shell". 

아래와 같은 오류가 있습니다. 또한 다른 버전의 Spark를 설치하려고 시도했지만 모두 동일한 오류가 있습니다. Spark를 실행하는 것은 이번이 두 번째입니다. 내 이전 실행이 잘 작동합니다.

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

1
Spark가 현재 ipv6에서 제대로 작동하지 않기 때문일 수 있습니다. 당신은 시도 할 수bin/spark-shell --driver-java-options "-Djava.net.preferIPv4Stack=true"
zsxwing

@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

@zsxwing 127.0.0.1 핑을 시도했는데 정상적으로 작동합니다.
Jia

답변:


139

다음 단계가 도움이 될 수 있습니다.

  1. "hostname"명령을 사용하여 호스트 이름을 가져옵니다.

  2. 호스트 이름이 없으면 다음과 같이 / etc / hosts 파일에 항목을 만듭니다.

    127.0.0.1      your_hostname
    

도움이 되었기를 바랍니다!!


조언 해주셔서 감사합니다. jupyter 클라이언트에서 sparkContext를 만들려고 할 때 우분투 jupyter 서버에서 비슷한 문제가 발생했습니다. 호스트 파일에 매핑을 추가하면 문제가 해결되었습니다. :-)
Julien Bachmann

2
Mac에서 "sudo nano / private / etc / hosts"를 편집해야합니다
Saeed

1
실행 ping $(hostname)하면 127.0.0.1로 해결되어야합니다.
Thomas Decaux 2017

나를 위해 고쳤습니다. 감사!
Andrés Mejía 2018

1
이 명령을 실행하면 도움이되었습니다-> sudo hostname -s 127.0.0.1
MRTJ

119

나는 항상 네트워크 사이를 전환 할 때 그것을 얻습니다. 이것은 그것을 해결합니다 :

$ sudo hostname -s 127.0.0.1


4
이것은 나에게도 효과적이었습니다. 제 경우에는 회사 VPN에 로그인 한 직후에 발생합니다. Spark 앱을 개발하는 동안 일주일에 두 번 실행해야합니다.
AdrianVeidt

기업
VPN-

1
GNU / 리눅스에 :$ sudo hostname -b 127.0.0.1
orluke

1
대박. 나도 기업 VPN으로 인해이 문제에 직면했고이 문제가 해결되었습니다.
Dileep Kumar Patchigolla

1
감사합니다. 왜 작동하는지 설명해 주시겠습니까?
vitalii

34

현재 마스터 브랜치에서 version 2.0.0-SNAPSHOT. 추가 한 후 export SPARK_LOCAL_IP="127.0.0.1"load-spark-env.sh나를 위해 일했다. Macos 10.10.5를 사용하고 있습니다. 그래서 버전 문제일까요?


3
나는 사용할 수 있었다 $ SPARK_LOCAL_IP="127.0.0.1" gradle my-gradle-task-using-local-spark. VPN을 사용할 때 문제가 발생했습니다. Macos 10.11.1을 사용하고 있습니다.
Sergey Orshanskiy

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 prop 설정과 함께 마스터를 '로컬'로 설정하고 문제를 해결했습니다.
medloh apr

좋은 아이디어는 추가 spark.driver.host덤비는 반대로 코드에서 직접$SPARK_HOME/conf/spark-defaults.conf
StephenBoesch

이것이 제가 찾고있는 정확한 솔루션입니다. 효과가있었습니다. IDE를 사용하는 경우에만 사용해야하는 이유는 무엇입니까? 이것은 비 IDE 테스트에 영향을 미칩니 까?
Buddha

8

제 생각에는 두 가지 오류가 있습니다.

  1. 스파크 로컬 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가 있으면 자동으로 사용하고, 그렇지 않으면 생성합니다. 필요한 경우 명시 적으로 두 개를 만들 수 있습니다.


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 ()를 사용하여 아래와 같이 스파크 구성을 설정해야합니다.

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

3

SPARK_LOCAL_IP = 127.0.0.1 내보내기 (mac .bash_profile의 경우)


2

때때로 방화벽이 소켓 생성 및 바인딩을 차단합니다. 방화벽이 활성화되어 있지 않은지 확인하고 / etc / hosts에서 컴퓨터의 IP를 확인하고 정상인지 확인한 다음 다시 시도해야합니다.

sudo ufw disable

1
죄송합니다. 리눅스에까지 머리에 대한 감사
마흐디 Esmailoghli

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에서는 시스템 환경 설정에서 IP 확인-> 네트워크-> 연결된 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.