SparkContext başlatılırken Mac spark-shell hatası


89

Mac OS Yosemite 10.10.5'te spark 1.6.0 (spark-1.6.0-bin-hadoop2.4) uygulamasını kullanarak

"./bin/spark-shell". 

Aşağıdaki hata var. Ayrıca Spark'ın farklı sürümlerini kurmaya çalıştım ama hepsinde aynı hata var. Spark'ı ikinci kez çalıştırıyorum. Önceki çalışmam iyi çalışıyor.

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

Sonra eklerim

export SPARK_LOCAL_IP="127.0.0.1"

spark-env.sh için, hata şu şekilde değişir:

 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

Çalışan makinemde 10.10.5 - Bu değişkeni dışa aktarırsam da (farklı) bir hata alıyorum, bu yüzden bunun bir düzeltme olduğunu düşünmüyorum. Onsuz iyi çalışır. Daha fazla bilgi almak için DEBUG günlük seviyesinde koşmayı denediniz mi?
jbrown

1
Bunun nedeni, Spark'ın şu anda ipv6 ile iyi çalışmaması olabilir. Deneyebilir misinbin/spark-shell --driver-java-options "-Djava.net.preferIPv4Stack=true"
zsxwing

@zsxwing Denedim ve benzer bir hata oluştu16/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

Belki makinenizde bazı ağ yapılandırma sorunları. Deneyebilir ping 127.0.0.1misin
zsxwing

@zsxwing 127.0.0.1'e ping atmayı denedim ve iyi çalışıyor.
Jia

Yanıtlar:


141

Aşağıdaki adımlar yardımcı olabilir:

  1. "Hostname" komutunu kullanarak ana bilgisayar adınızı alın.

  2. Ana bilgisayar adınız için / etc / hosts dosyasına aşağıdaki gibi bir giriş yapın:

    127.0.0.1      your_hostname
    

Bu yardımcı olur umarım!!


Tavsiye için teşekkürler. Bir jupyter istemcisinden sparkContext oluşturmaya çalışırken ubuntu jupyter sunucusunda benzer bir sorun yaşadım. Ana bilgisayar dosyasına eşleme eklemek sorunu çözdü :-)
Julien Bachmann

2
Mac'te "sudo nano / private / etc / hosts" dosyasını düzenlemelisiniz
Saeed

1
koş ping $(hostname), bu 127.0.0.1 olarak çözülmelidir
Thomas Decaux

Benim için düzelt. Teşekkürler!
Andrés Mejía

1
Bu komutu çalıştırmak da bana yardımcı oldu -> sudo hostname -s 127.0.0.1
MRTJ

120

Ağlar arasında geçiş yaparken bunu her zaman anlıyorum. Bu sorunu çözer:

$ sudo hostname -s 127.0.0.1


4
Bu benim için de çalıştı. Benim durumumda, kurumsal VPN'ime giriş yaptıktan hemen sonra oluyor. Kıvılcım uygulamalarımı geliştirirken bunu haftada birkaç kez çalıştırmam gerekiyor.
AdrianVeidt

kurumsal vpn - gizli düşman
StephenBoesch

1
GNU / Linux'ta:$ sudo hostname -b 127.0.0.1
orluke

1
Harika. Ben de kurumsal vpn nedeniyle bununla karşılaştım ve bu sorunu çözdü.
Dileep Kumar Patchigolla

1
Teşekkürler, işe yaradı. Lütfen bunun neden işe yaradığını açıklar mısınız?
vitalii

35

Sürüm ile mevcut ana daldan oluşturdum 2.0.0-SNAPSHOT. Ekledikten sonra export SPARK_LOCAL_IP="127.0.0.1"için load-spark-env.shbenim için çalıştı. Macos 10.10.5 kullanıyorum. Yani sürüm sorunu olabilir mi?


3
Kullanabildim $ SPARK_LOCAL_IP="127.0.0.1" gradle my-gradle-task-using-local-spark. Sorun vpn kullanılırken ortaya çıktı. Macos 10.11.1 kullanıyorum.
Sergey Orshanskiy

32

spark.driver.hostIDE kullanıyorsanız, sadece yerel ana makineniz olarak ayarlayın

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

yerel [2] ne anlama geliyor? Spark.driver.host propunu ayarlamanın yanı sıra ana bilgisayarı 'yerel' olarak ayarladım ve sorunumu çözdüm.
medloh

spark.driver.host$SPARK_HOME/conf/spark-defaults.conf
İle uğraşmak

Tam aradığım çözüm bu. İşe yaradı. Neden sadece IDE kullanıyorsak olmalı? bunun IDE dışı testler için etkisi olacak mı?
Buddha

9

Sanırım iki hata var.

  1. Kıvılcım yerel ipiniz doğru değildi ve 127.0.0.1 olarak değiştirilmesi gerekiyor.
  2. SqlContext'i düzgün bir şekilde değiştirmediniz.

1. Ben denedim:

  • 1) ~ / .bash_profile dosyasında dışa aktarılan SPARK_LOCAL_IP = "127.0.0.1"
  • 2) load-spark-env.sh içinde $ SPARK_HOME altına dışa aktarma SPARK_LOCAL_IP = "127.0.0.1" eklendi

Ama ikisi de işe yaramadı. Sonra aşağıdakileri denedim ve işe yaradı:

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

2. için deneyebilirsiniz:

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

ve sonra import sqlContext.implicits._

SparkSession'daki oluşturucu, varsa otomatik olarak SparkContext'i kullanır, aksi takdirde bir tane oluşturur. Gerekirse açıkça iki tane oluşturabilirsiniz.


8

Mac'inizin ana bilgisayar adını değiştirmek istemiyorsanız, aşağıdakileri yapabilirsiniz:

  1. spark-env.sh.templateMakinenizdeki şablon dosyasını bulun (büyük olasılıkla içindedir /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.1Yerel IP için yorumun altına ekleyin .

Başlayın spark-shellve keyfini çıkarın.


5

Kodu bir IDE'de çalıştırmak için Scala kullanıyorsanız ve aynı sorunla karşılaşırsanız ve yukarıda belirtildiği gibi SparkConf () kullanmıyorsanız ve SparkSession () kullanmıyorsanız, localhost adresini yalnızca set çalıştığı gibi aşağıdaki gibi bağlayabilirsiniz. SparkConf () içinde. Kıvılcım yapılandırmasını aşağıda gösterildiği gibi ayarlamak için .config () kullanmalısınız:

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

3

SPARK_LOCAL_IP = 127.0.0.1 dışa aktar (mac .bash_profile için)


2

Bazen güvenlik duvarı bir soket oluşturmayı ve bağlamayı engeller. güvenlik duvarınızın etkin olmadığından emin olun ve ayrıca makinenizin ipini / etc / hosts içinde kontrol edin ve sorunsuz olduğundan emin olun ve tekrar deneyin:

sudo ufw disable

1
oops. linux üzerinde
Uyarılar

2

Bu, farklı ağlar arasında geçiş yaptığınızda olur (farklı ortamlara erişmek için şirket ağlarınıza göre VPN - PROD, CI).

VPN'i her değiştirdiğimde aynı sorunu yaşadım.

sudo / etc / hosts dosyasını Mac'inizdeki ana bilgisayar adı değeriyle güncelleyin.


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

export SPARK_LOCAL_IP=127.0.0.1

sadece yukarıda yapmak benim için çalıştı.


0

Mac'te, Sistem Tercihinde IP'yi Kontrol Edin -> Ağ -> bağlı olduğunuz Wifi'ı tıklayın (yeşil simge göstermelidir) -> Ağ Adınızın hemen üzerindeki IP'yi kontrol edin.

../Conf/spark-env.sh içinde aşağıdaki girişi yapın:

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

ve daha sonra kıvılcım kabuğunu deneyin. Yukarıdaki değişiklikleri yapmak benim için çalıştı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.