2015-01-27 12 views
6

Sto cercando di imparare Spark eseguendolo in modalità standalone sul mio MacBook Pro (10.9.2). Ho scaricato & costruito seguendo le istruzioni qui:Impossibile eseguire Spark 1.2 in modalità standalone su Mac

http://spark.apache.org/docs/latest/building-spark.html

Ho quindi iniziato il server master seguendo le istruzioni qui:

https://spark.apache.org/docs/latest/spark-standalone.html#starting-a-cluster-manually

che ha funzionato, anche se ho dovuto aggiungere il seguente linea al mio file SPARK_HOME/conf/spark-env.sh per farlo avviare correttamente:

export SPARK_MASTER_IP="127.0.0.1" 

Tuttavia, quando provo ad eseguire questo comando per avviare un lavoratore:

./bin/spark-class org.apache.spark.deploy.worker.Worker spark://127.0.0.1:7077 

Viene a mancare con questo errore:

Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties 
15/01/26 16:29:17 INFO Worker: Registered signal handlers for [TERM, HUP, INT] 
15/01/26 16:29:17 INFO SecurityManager: Changing view acls to: erioconnor 
15/01/26 16:29:17 INFO SecurityManager: Changing modify acls to: erioconnor 
15/01/26 16:29:17 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(erioconnor); users with modify permissions: Set(erioconnor) 
15/01/26 16:29:17 INFO Slf4jLogger: Slf4jLogger started 
15/01/26 16:29:17 INFO Remoting: Starting remoting 
15/01/26 16:29:17 ERROR NettyTransport: failed to bind to /10.252.181.130:0, shutting down Netty transport 
15/01/26 16:29:17 ERROR Remoting: Remoting error: [Startup failed] [ 
akka.remote.RemoteTransportException: Startup failed 
    at akka.remote.Remoting.akka$remote$Remoting$$notifyError(Remoting.scala:136) 
    at akka.remote.Remoting.start(Remoting.scala:201) 
    at akka.remote.RemoteActorRefProvider.init(RemoteActorRefProvider.scala:184) 
    at akka.actor.ActorSystemImpl.liftedTree2$1(ActorSystem.scala:618) 
    at akka.actor.ActorSystemImpl._start$lzycompute(ActorSystem.scala:615) 
    at akka.actor.ActorSystemImpl._start(ActorSystem.scala:615) 
    at akka.actor.ActorSystemImpl.start(ActorSystem.scala:632) 
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:141) 
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:118) 
    at org.apache.spark.util.AkkaUtils$.org$apache$spark$util$AkkaUtils$$doCreateActorSystem(AkkaUtils.scala:121) 
    at org.apache.spark.util.AkkaUtils$$anonfun$1.apply(AkkaUtils.scala:54) 
    at org.apache.spark.util.AkkaUtils$$anonfun$1.apply(AkkaUtils.scala:53) 
    at org.apache.spark.util.Utils$$anonfun$startServiceOnPort$1.apply$mcVI$sp(Utils.scala:1676) 
    at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:141) 
    at org.apache.spark.util.Utils$.startServiceOnPort(Utils.scala:1667) 
    at org.apache.spark.util.AkkaUtils$.createActorSystem(AkkaUtils.scala:56) 
    at org.apache.spark.deploy.worker.Worker$.startSystemAndActor(Worker.scala:495) 
    at org.apache.spark.deploy.worker.Worker$.main(Worker.scala:475) 
    at org.apache.spark.deploy.worker.Worker.main(Worker.scala) 
Caused by: org.jboss.netty.channel.ChannelException: Failed to bind to: /10.252.181.130:0 
    at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:272) 
    at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:393) 
    at akka.remote.transport.netty.NettyTransport$$anonfun$listen$1.apply(NettyTransport.scala:389) 
    at scala.util.Success$$anonfun$map$1.apply(Try.scala:206) 
    at scala.util.Try$.apply(Try.scala:161) 
    at scala.util.Success.map(Try.scala:206) 
    at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) 
    at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:235) 
    at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) 
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.processBatch$1(BatchingExecutor.scala:67) 
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:82) 
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59) 
    at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.apply(BatchingExecutor.scala:59) 
    at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72) 
    at akka.dispatch.BatchingExecutor$Batch.run(BatchingExecutor.scala:58) 
    at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:41) 
    at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393) 
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) 
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) 
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) 
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 
Caused by: java.net.BindException: Can't assign requested address 
    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 org.jboss.netty.channel.socket.nio.NioServerBoss$RegisterTask.run(NioServerBoss.java:193) 
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.processTaskQueue(AbstractNioSelector.java:372) 
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:296) 
    at org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBoss.java:42) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:744) 
] 
15/01/26 16:29:17 WARN Utils: Service 'sparkWorker' could not bind on port 0. Attempting port 1. 
15/01/26 16:29:17 INFO RemoteActorRefProvider$RemotingTerminator: Shutting down remote daemon. 
15/01/26 16:29:17 INFO RemoteActorRefProvider$RemotingTerminator: Remote daemon shut down; proceeding with flushing remote transports. 
15/01/26 16:29:17 INFO Remoting: Remoting shut down 
15/01/26 16:29:17 INFO RemoteActorRefProvider$RemotingTerminator: Remoting shut down. 

L'errore si ripete un totale di 16 volte prima che il processo si arrende .

Non capisco il riferimento all'indirizzo IP 10.252.181.130. Non appare da nessuna parte nel codice/configurazione Spark che sono stato in grado di localizzare, e su Google non viene visualizzato alcun risultato. Ho notato questa riga nel file di log da quando ho iniziato il server master:

15/01/26 16:27:18 INFO MasterWebUI: Started MasterWebUI at http://10.252.181.130:8080 

ho guardato la fonte Scala per MasterWebUI (e WebUI, che si estende), e ho notato che sembrano ottenere che l'indirizzo IP da una variabile di ambiente denominata SPARK_PUBLIC_DNS. Ho provato a impostare quella variabile su 127.0.0.1 nel mio script spark-env.sh, ma non ha funzionato. In realtà, ha impedito il mio server master da partenza:

Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties 
15/01/26 19:46:16 INFO Master: Registered signal handlers for [TERM, HUP, INT] 
Exception in thread "main" java.net.UnknownHostException: LM-PDX-00871419: LM-PDX-00871419: nodename nor servname provided, or not known 
    at java.net.InetAddress.getLocalHost(InetAddress.java:1473) 
    at org.apache.spark.util.Utils$.findLocalIpAddress(Utils.scala:620) 
    at org.apache.spark.util.Utils$.localIpAddress$lzycompute(Utils.scala:612) 
    at org.apache.spark.util.Utils$.localIpAddress(Utils.scala:612) 
    at org.apache.spark.util.Utils$.localIpAddressHostname$lzycompute(Utils.scala:613) 
    at org.apache.spark.util.Utils$.localIpAddressHostname(Utils.scala:613) 
    at org.apache.spark.util.Utils$$anonfun$localHostName$1.apply(Utils.scala:665) 
    at org.apache.spark.util.Utils$$anonfun$localHostName$1.apply(Utils.scala:665) 
    at scala.Option.getOrElse(Option.scala:120) 
    at org.apache.spark.util.Utils$.localHostName(Utils.scala:665) 
    at org.apache.spark.deploy.master.MasterArguments.<init>(MasterArguments.scala:27) 
    at org.apache.spark.deploy.master.Master$.main(Master.scala:819) 
    at org.apache.spark.deploy.master.Master.main(Master.scala) 
Caused by: java.net.UnknownHostException: LM-PDX-00871419: nodename nor servname provided, or not known 
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) 
    at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:901) 
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1293) 
    at java.net.InetAddress.getLocalHost(InetAddress.java:1469) 
    ... 12 more 

(Si noti che LM-PDX-00.871.419 è il nome host del mio Mac.)

Quindi a questo punto Sono un po 'perplesso. Apprezzerei molto qualsiasi suggerimento su dove guardare dopo.

risposta

3

Ho avuto problemi nell'utilizzo dell'indirizzo di loopback, 127.0.0.1 o localhost. Ho avuto un migliore successo con l'effettivo indirizzo IP pubblico della macchina, ad esempio 192.168.1.101. Non so da dove arriverà lo 10.252.181.130.

Per il nome host del tuo Mac, prova ad aggiungere ".local" alla fine. Se ciò non funziona, aggiungere una voce a /etc/hosts.

Infine, si consiglia di utilizzare gli script sbin/spark-master.sh e sbin/spark-slave.sh per l'esecuzione di questi servizi.

+2

Grazie per il vostro aiuto! Ho provato a utilizzare prima il mio indirizzo IP privato (192.168.1.13), ma non ha funzionato. Tuttavia, mi ha portato alla scoperta che esiste un'altra variabile d'ambiente chiamata SPARK_LOCAL_IP che apparentemente si sta abituando. Quando ho provato a impostarlo su 127.0.0.1 nel mio file spark-env.sh, sono riuscito a far avviare il mio master e il mio worker. –

5

Se si utilizza IntelliJ IDEA, potrebbe essere utile sapere che è possibile impostare la variabile di ambiente SPARK_LOCAL_IP su 127.0.0.1 nelle configurazioni Run/Debug.

Problemi correlati