मैक स्पार्क-शेल त्रुटि SparkContext को शुरू करने में


89

मैंने Mac OS Yosemite 10.50.5 का उपयोग करके स्पार्क 1.6.0 (स्पार्क-1.6.0-बिन-हडूप 2.4) शुरू करने की कोशिश की।

"./bin/spark-shell". 

इसके नीचे त्रुटि है। मैंने स्पार्क के विभिन्न संस्करणों को स्थापित करने की भी कोशिश की, लेकिन सभी में एक ही त्रुटि है। यह दूसरी बार है जब मैं स्पार्क चला रहा हूं। मेरा पिछला रन ठीक काम करता है।

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"

स्पार्क-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
ऐसा इसलिए हो सकता है क्योंकि स्पार्क अभी 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)...
जिया

हो सकता है कि आपकी मशीन में कुछ नेटवर्क कॉन्फ़िगरेशन समस्या हो। क्या आप कोशिश कर सकते हैं ping 127.0.0.1?
zsxwing

@zsxwing मैंने 127.0.0.1 पिंग की कोशिश की, और यह ठीक काम करता है।
जिया

जवाबों:


141

निम्नलिखित कदम मदद कर सकते हैं:

  1. "Hostname" कमांड का उपयोग करके अपना होस्टनाम प्राप्त करें।

  2. निम्न के रूप में मौजूद नहीं होने पर अपने होस्टनाम के लिए / etc / मेजबान फ़ाइल में एक प्रविष्टि करें:

    127.0.0.1      your_hostname
    

उम्मीद है की यह मदद करेगा!!


सलाह के लिए धन्यवाद। मैं एक ubuntu jupyter सर्वर पर एक समान समस्या थी जब मैं एक jupyter क्लाइंट से एक स्पार्क कॉन्टेक्स्ट बनाने की कोशिश कर रहा था। मेजबानों फ़ाइल में मानचित्रण को जोड़ना मुद्दा तय किया :-)
जूलियन

2
आपको मैक में "सुडो नैनो / प्राइवेट / इत्यादि / होस्ट्स" को संपादित करना चाहिए
सईद

1
चलाने के लिए ping $(hostname), यह 127.0.0.1
थॉमस डेकाक्स

इसे मेरे लिए तय किया। धन्यवाद!
एंड्रेस मेजा

1
इस कमांड को चलाने से मेरे लिए भी मदद मिली -> sudo hostname -s 127.0.0.1
MRTJ

120

नेटवर्क के बीच स्विच करने पर मुझे हमेशा ऐसा मिलता है। यह इसे हल करता है:

$ sudo hostname -s 127.0.0.1


4
यह मेरे लिए भी काम किया। मेरे कॉर्पोरेट वीपीएन में प्रवेश करने के बाद मेरे मामले में यह सही होता है। मुझे सप्ताह में दो बार इसे चलाना होगा जबकि मैं अपनी स्पार्क ऐप्स विकसित कर रहा हूं।
एड्रियनवेट

कॉर्पोरेट वीपीएन - छिपे हुए दुश्मन
स्टीफनबॉस्च

1
GNU / Linux पर:$ sudo hostname -b 127.0.0.1
orluke

1
बहुत बढ़िया। मुझे भी कॉर्पोरेट वीपीएन के कारण इसका सामना करना पड़ा, और इसने इसे ठीक किया।
दिलीप कुमार पचीगोला

1
धन्यवाद, कि काम किया। क्या आप बता सकते हैं, कृपया, क्यों काम करता है?
महत्वपूर्ण vital

35

मैंने इसे वर्तमान मास्टर शाखा से संस्करण के साथ बनाया है 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। वीपीएन का उपयोग करते समय समस्या सामने आई। मैं macos 10.11.1 का उपयोग कर रहा हूं।
बजे सर्गेई ओरशान्स्की

32

spark.driver.hostयदि आप IDE का उपयोग करते हैं तो बस अपनी लोकलहोस्ट होने के लिए सेट करें

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

स्थानीय [2] का क्या अर्थ है? मैंने सिर्फ स्पार्क.ड्राइवर.होस्ट प्रोप को सेट करने के साथ-साथ 'लोकल' में मास्टर सेट किया और इसने मेरी समस्या को ठीक कर दिया।
मध्यलोक

spark.driver.hostकोड में सीधे जोड़ने के लिए अच्छा विचार$SPARK_HOME/conf/spark-defaults.conf
स्टीफनबॉस्च

यह सटीक उपाय है जिसकी मुझे तलाश है। इसने काम कर दिया। अगर हम आईडीई का उपयोग कर रहे हैं तो केवल यह क्यों होना चाहिए? क्या यह गैर आईडीई परीक्षणों के लिए प्रभाव पड़ेगा?
बुद्ध

9

मेरे विचार से दो त्रुटियां हैं।

  1. आपकी स्पार्क लोकल आईपी सही नहीं थी और इसे 127.0.0.1 में बदलना होगा।
  2. आपने ठीक से sqlContext को परिभाषित नहीं किया है।

1 के लिए: मैंने कोशिश की:

  • 1) ~ / .bash_profile में SPARK_LOCAL_IP = "127.0.0.1" निर्यात किया गया
  • 2) जोड़ा गया SPARK_LOCAL_IP = "127.0.0.1" लोड-spark-env.sh में $ SPARK_HOME

लेकिन न तो काम हुआ। फिर मैंने निम्नलिखित कोशिश की और यह काम किया:

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 का उपयोग करेगा यदि यह मौजूद है, अन्यथा यह एक बना देगा। यदि आवश्यक हो तो आप स्पष्ट रूप से दो बना सकते हैं।


8

यदि आप अपने मैक के होस्टनाम को बदलना नहीं चाहते हैं, तो आप निम्न कार्य कर सकते हैं:

  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स्थानीय आईपी के लिए टिप्पणी के तहत जोड़ें ।

शुरू करो spark-shellऔर इसका आनंद लो।


5

यदि आप आईडीए में कोड को चलाने के लिए स्काला का उपयोग कर रहे हैं, और यदि आप एक ही मुद्दे का सामना करते हैं और आप स्पार्ककॉन्फ़ () का उपयोग नहीं कर रहे हैं जैसा कि ऊपर बताया गया है और स्पार्कसैशन () का उपयोग कर रहे हैं, तो आप स्थानीयहोस्ट पते को बाँध सकते हैं क्योंकि यह केवल सेट के रूप में काम करता है स्पार्ककॉन्फ़ में ()। आपको नीचे दिखाए गए अनुसार स्पार्क कॉन्फ़िगरेशन सेट करने के लिए .config () का उपयोग करना चाहिए:

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

3

SPARK_LOCAL_IP = 127.0.0.1 (मैक .bash_profile के लिए) निर्यात करें


2

कभी-कभी फ़ायरवॉल सॉकेट बनाने और बांधने से रोकता है। सुनिश्चित करें कि आपका फ़ायरवॉल सक्षम नहीं है और साथ ही आपको अपनी मशीन के ip को / etc / मेजबान में जाँचना है और यह सुनिश्चित करना है कि यह ठीक है: फिर से कोशिश करें:

sudo ufw disable

1
उफ़। on linux हेड्स अप के लिए धन्यवाद
Mahdi Esmailoghli

2

ऐसा तब होता है जब आपने विभिन्न नेटवर्कों के बीच स्विच किया (वीपीएन - पीआरडी, सीआई आपकी कंपनी नेटवर्क के आधार पर विभिन्न वातावरणों का उपयोग करने के लिए)।

मेरे पास एक ही मुद्दा था, जब भी मैं वीपीएन स्विच करता हूं।

अपने मैक पर hostname मान के साथ sudo / etc / host को अपडेट करें।


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

export SPARK_LOCAL_IP=127.0.0.1

बस ऊपर वाला मेरे लिए काम कर रहा है।


0

मैक में, सिस्टम वरीयता में आईपी की जाँच करें -> नेटवर्क -> आपके द्वारा जुड़े वाईफाई पर क्लिक करें (यह हरे रंग का आइकन दिखाना चाहिए) -> अपने नेटवर्क नाम के ठीक ऊपर आईपी की जांच करें।

निम्न प्रविष्टि करें ../conf/spark-env.sh:

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

और स्पार्क-शेल की कोशिश से। ऊपर किए गए बदलावों ने मेरे लिए काम किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.