web-dev-qa-db-ja.com

バインドに失敗しました:sp​​ark-master、2つのワーカーでリモートクラスターを使用

私はすべてをローカルマスターと2人のリモートワーカーで動作させることに成功しています。ここで、同じリモートワーカーを持つリモートマスターに接続します。インターネット上の/ etc/hostsやその他の推奨事項を使用して、さまざまな設定の組み合わせを試しましたが、何も機能しませんでした。

メインクラスは次のとおりです。

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);

}

以下で失敗します。

List<String> result = pInfoJ.collect();

私が得ているエラーは次のとおりです。

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

ご協力ありがとうございました!

22
Damir Olejar

環境変数SPARK_LOCAL_IP = 127.0.0.1を設定すると、これが解決しました。

55
Travis Carlson

私の/etc/hostsファイルは、間違ったIPアドレスをローカルホスト名にマッピングしていました。

ログのBindExceptionは、IPアドレス192.168.0.191。私はそれがあなたのマシンのホスト名に解決され、それがnotネットワークインターフェースが使用している実際のIPアドレスだと仮定します。それを修正すれば問題なく動作するはずです。

12
Costi Ciudatu

EC2インスタンスでsparkを使用していました。新しいWebサーバーを起動し、その要件を満たすためにホスト名をec2パブリックDNS名に変更する必要がありました。

hostname ec2-54-xxx-xxx-xxx.compute-1.amazonaws.com

その後、my sparkが機能せず、次のようなエラーが表示されました。

16/09/20 21:02:22警告Utils:サービス 'sparkDriver'はポート0でバインドできませんでした。ポート1を試行しています。16/09/20 21:02:22エラーSparkContext:SparkContextの初期化エラー。

SPARK_LOCAL_IPを次のように設定して解決します。

export SPARK_LOCAL_IP="localhost"

次に、以下のように輝くシェルを起動しました:

$SPARK_HOME/bin/spark-Shell
5
AvkashChauhan

マスターがデフォルト以外のポートで実行されている可能性があります。送信コマンドを投稿できますか? https://spark.Apache.org/docs/latest/spark-standalone.html#connecting-an-application-to-the-cluster をご覧ください

1
ayan guha