2014-04-29 12 views
5

Voglio eseguire Spark su una macchina locale utilizzando pyspark. Da here Io uso i comandi:Problemi nell'installazione di Pyspark

sbt/sbt assembly 
$ ./bin/pyspark 

L'installazione Completa, ma pyspark è in grado di eseguire, con conseguente il seguente errore (per intero):

138:spark-0.9.1 comp_name$ ./bin/pyspark 
Python 2.7.6 |Anaconda 1.9.2 (x86_64)| (default, Jan 10 2014, 11:23:15) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
Traceback (most recent call last): 
    File "/Users/comp_name/Downloads/spark-0.9.1/python/pyspark/shell.py", line 32, in <module> 
    sc = SparkContext(os.environ.get("MASTER", "local"), "PySparkShell", pyFiles=add_files) 
    File "/Users/comp_name/Downloads/spark-0.9.1/python/pyspark/context.py", line 123, in __init__ 
    self._jsc = self._jvm.JavaSparkContext(self._conf._jconf) 
    File "/Users/comp_name/Downloads/spark-0.9.1/python/lib/py4j-0.8.1-src.zip/py4j/java_gateway.py", line 669, in __call__ 
    File "/Users/comp_name/Downloads/spark-0.9.1/python/lib/py4j-0.8.1-src.zip/py4j/protocol.py", line 300, in get_return_value 
py4j.protocol.Py4JJavaError: An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext. 
: java.net.UnknownHostException: 138.7.100.10.in-addr.arpa: 138.7.100.10.in-addr.arpa: nodename nor servname provided, or not known 
    at java.net.InetAddress.getLocalHost(InetAddress.java:1466) 
    at org.apache.spark.util.Utils$.findLocalIpAddress(Utils.scala:355) 
    at org.apache.spark.util.Utils$.localIpAddress$lzycompute(Utils.scala:347) 
    at org.apache.spark.util.Utils$.localIpAddress(Utils.scala:347) 
    at org.apache.spark.util.Utils$.localIpAddressHostname$lzycompute(Utils.scala:348) 
    at org.apache.spark.util.Utils$.localIpAddressHostname(Utils.scala:348) 
    at org.apache.spark.util.Utils$$anonfun$localHostName$1.apply(Utils.scala:395) 
    at org.apache.spark.util.Utils$$anonfun$localHostName$1.apply(Utils.scala:395) 
    at scala.Option.getOrElse(Option.scala:120) 
    at org.apache.spark.util.Utils$.localHostName(Utils.scala:395) 
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:124) 
    at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:47) 
    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 py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:234) 
    at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:379) 
    at py4j.Gateway.invoke(Gateway.java:214) 
    at py4j.commands.ConstructorCommand.invokeConstructor(ConstructorCommand.java:79) 
    at py4j.commands.ConstructorCommand.execute(ConstructorCommand.java:68) 
    at py4j.GatewayConnection.run(GatewayConnection.java:207) 
    at java.lang.Thread.run(Thread.java:724) 
Caused by: java.net.UnknownHostException: 138.7.100.10.in-addr.arpa: nodename nor servname provided, or not known 
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) 
    at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:894) 
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1286) 
    at java.net.InetAddress.getLocalHost(InetAddress.java:1462) 
    ... 22 more 

Tutte le idee che sto facendo male? Non so da dove provenga l'indirizzo IP 138.7.100.10. Viene visualizzato questo errore quando si utilizza (o no) MAMP per creare un localhost. Grazie in anticipo!

risposta

4

La versione di Java che stavo usando era 1.7. sto usando un MacBook Air, in esecuzione 10.9.2

$ java -version 

mi ha dato:

java version "1.7.0_25" 
Java(TM) SE Runtime Environment (build 1.7.0_25-b15) 
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode) 

downgrade a 1.6:

$ cd /Library/Java/JavaVirtualMachines 
$ ls 

restituito:

jdk1.7.0_25.jdk 

Per eliminare quel file (e downgrade ja va e risolvere il mio problema):

$ sudo rm -rf jdk1.7.0_25.jdk 

Poi ho avuto:

$ java -version 

che ha dato l'output:

java version "1.6.0_65" 
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609) 
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode) 

E, infine, sono in grado di eseguire Spark:

$ ./bin/pyspark 

E tutto è felice:

Welcome to 
     ____    __ 
    /__/__ ___ _____/ /__ 
    _\ \/ _ \/ _ `/ __/ '_/ 
    /__/.__/\_,_/_/ /_/\_\ version 0.9.1 
     /_/ 
10

La soluzione corretta è impostare la variabile di ambiente SPARK_LOCAL_IP su localhost o qualunque sia il nome host.

+1

Molto meglio del downgrade di java. :) –

5

Ho avuto lo stesso problema con Spark ed è correlato al tuo IP portatile.

La mia soluzione:

sudo/etc/hosts

sotto

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

aggiungere

127.0.0.1 LAPTOPNAME

il LAPT OPNAME può essere trovato con il tuo terminale ed è root @ LAPTOPNAME (qualunque sia stato impostato durante l'installazione)

Verrà eseguito con Java1.7

+2

per favore aggiungi vi o emacs a sudo/etc/hosts per rendere più chiaro l'uso di un editor di testo – lapolonio