Je parviens à tout faire fonctionner avec le maître local et deux télétravailleurs. Maintenant, je veux me connecter à un maître distant qui a les mêmes travailleurs distants. J'ai essayé différentes combinaisons de paramètres avec/etc/hosts et d'autres recommandations sur Internet, mais RIEN n'a fonctionné.
La classe principale est:
public static void main(String[] args) {
ScalaInterface sInterface = new ScalaInterface(CHUNK_SIZE,
"awsAccessKeyId",
"awsSecretAccessKey");
SparkConf conf = new SparkConf().setAppName("POC_Java_AND_SPARK")
.setMaster("spark://spark-master:7077");
org.Apache.spark.SparkContext sc = new org.Apache.spark.SparkContext(
conf);
sInterface.enableS3Connection(sc);
org.Apache.spark.rdd.RDD<Tuple2<Path, Text>> fileAndLine = (RDD<Tuple2<Path, Text>>) sInterface.getMappedRDD(sc, "s3n://somebucket/");
org.Apache.spark.rdd.RDD<String> pInfo = (RDD<String>) sInterface.mapPartitionsWithIndex(fileAndLine);
JavaRDD<String> pInfoJ = pInfo.toJavaRDD();
List<String> result = pInfoJ.collect();
String miscInfo = sInterface.getMiscInfo(sc, pInfo);
System.out.println(miscInfo);
}
Il échoue à:
List<String> result = pInfoJ.collect();
L'erreur que je reçois est:
1354 [sparkDriver-akka.actor.default-dispatcher-3] ERROR akka.remote.transport.netty.NettyTransport - failed to bind to spark-master/192.168.0.191:0, shutting down Netty transport
1354 [main] WARN org.Apache.spark.util.Utils - Service 'sparkDriver' could not bind on port 0. Attempting port 1.
1355 [main] DEBUG org.Apache.spark.util.AkkaUtils - In createActorSystem, requireCookie is: off
1363 [sparkDriver-akka.actor.default-dispatcher-3] INFO akka.remote.RemoteActorRefProvider$RemotingTerminator - Shutting down remote daemon.
1364 [sparkDriver-akka.actor.default-dispatcher-3] INFO akka.remote.RemoteActorRefProvider$RemotingTerminator - Remote daemon shut down; proceeding with flushing remote transports.
1364 [sparkDriver-akka.actor.default-dispatcher-5] INFO akka.remote.RemoteActorRefProvider$RemotingTerminator - Remoting shut down.
1367 [sparkDriver-akka.actor.default-dispatcher-4] INFO akka.event.slf4j.Slf4jLogger - Slf4jLogger started
1370 [sparkDriver-akka.actor.default-dispatcher-6] INFO Remoting - Starting remoting
1380 [sparkDriver-akka.actor.default-dispatcher-4] ERROR akka.remote.transport.netty.NettyTransport - failed to bind to spark-master/192.168.0.191:0, shutting down Netty transport
Exception in thread "main" 1382 [sparkDriver-akka.actor.default-dispatcher-6] INFO akka.remote.RemoteActorRefProvider$RemotingTerminator - Shutting down remote daemon.
1382 [sparkDriver-akka.actor.default-dispatcher-6] INFO akka.remote.RemoteActorRefProvider$RemotingTerminator - Remote daemon shut down; proceeding with flushing remote transports.
Java.net.BindException: Failed to bind to: spark-master/192.168.0.191:0: Service 'sparkDriver' failed after 16 retries!
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)
1383 [sparkDriver-akka.actor.default-dispatcher-7] INFO akka.remote.RemoteActorRefProvider$RemotingTerminator - Remoting shut down.
1385 [delete Spark temp dirs] DEBUG org.Apache.spark.util.Utils - Shutdown hook called
Merci de votre aide!
La définition de la variable d'environnement SPARK_LOCAL_IP = 127.0.0.1 a résolu ce problème pour moi.
J'ai eu ce problème lorsque mon /etc/hosts
le fichier mappait la mauvaise adresse IP à mon nom d'hôte local.
BindException
dans vos journaux se plaint de l'adresse IP 192.168.0.191
. Je suppose que cela résout le nom d'hôte de votre machine et c'est pas l'adresse IP réelle que votre interface réseau utilise. Cela devrait bien fonctionner une fois que vous aurez corrigé cela.
J'avais spark travaillant dans mon instance EC2. J'ai commencé un nouveau serveur Web et pour répondre à ses exigences, j'ai dû changer le nom d'hôte en nom DNS public ec2, c'est-à-dire.
hostname ec2-54-xxx-xxx-xxx.compute-1.amazonaws.com
Après cela, mon spark ne pouvait pas fonctionner et a montré une erreur comme ci-dessous:
16/09/20 21:02:22 WARN Utils: Le service 'sparkDriver' n'a pas pu se lier sur le port 0. Tentative de port 1. 16/09/20 21:02:22 ERREUR SparkContext: Erreur lors de l'initialisation de SparkContext.
Je le résout en définissant SPARK_LOCAL_IP comme ci-dessous:
export SPARK_LOCAL_IP="localhost"
puis vient de lancer Shell pétillant comme ci-dessous:
$SPARK_HOME/bin/spark-Shell
Votre maître fonctionne peut-être sur un port autre que celui par défaut. Pouvez-vous publier votre commande de soumission? Jetez un œil à https://spark.Apache.org/docs/latest/spark-standalone.html#connecting-an-application-to-the-cluster