Spark – java.nio.channels.UnresolvedAddressException

Eine sehr kurze Beschreibung des folgenden Fehlers, der anscheinend auch bei dem folgendem Benutzer aufgetreten ist und dokumentiert wurde (github). Dieser Fehlercode kann in verschiedenen Szenarien auftreten. In meiner speziellen Situation war die Lösung jedoch uim Glück ganz simpel

Setup

Ich führe ein Spark-Image (spark:3.5.0-scala2.12-java11-python3-ubuntu) in einem Docker Compose aus. Um einen Master-Server zu starten, führe ich folgenden Befehl aus

command: "/opt/spark/bin/spark-class org.apache.spark.deploy.master.Master --ip ${SPARK_MASTER_HOST} --port 7077 --webui-port ${SPARK_MASTER_WEBUI_PORT}"

Der Container schaltet sich jedoch fast sofort mit folgendem Fehlercode ab

24/05/07 13:54:03 ERROR SparkUncaughtExceptionHandler: Uncaught exception in thread Thread[main,5,main]
java.nio.channels.UnresolvedAddressException
        at java.base/sun.nio.ch.Net.checkAddress(Unknown Source)
        at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
        at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:141)
        at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:562)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334)
        at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:600)
        at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:579)
        at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973)
        at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:260)
        at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356)
        at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
        at java.base/java.lang.Thread.run(Unknown Source)
24/05/07 13:54:03 INFO ShutdownHookManager: Shutdown hook called

Lösung

ChatGPT hat mir den richtigen Tipp gegeben, sagte er:

The error message you’re encountering, java.nio.channels.UnresolvedAddressException, typically occurs when Spark (or an underlying networking library like Netty) is trying to bind to a network address that cannot be resolved. This error generally indicates that the application is attempting to use an incorrect or non-existent hostname or IP address.

Possible Causes and Solutions

  1. Invalid Hostname/IP Address:
    • Ensure that the hostname or IP address you’re using is valid and resolvable. Check the network settings and any environment variables used to specify the addresses.
    • In a Docker environment, confirm that all services and containers can correctly resolve the specified hostnames.
  2. Misconfigured Bind Address:
    • The bind address is the network interface Spark attempts to bind to. Verify the values of environment variables like SPARK_MASTER_HOST, SPARK_LOCAL_IP, or any other bind address parameters.

Das gab mir den nötigen Hinweis. Ich habe SPARK_MASTER_HOST einfach falsch konfiguriert und hätte es mit 0.0.0.0 konfigurieren sollen, da die Anwendung lokal in einem Docker Container läuft.

Kommentar verfassen

Your email address will not be published. Required fields are marked *

hungsblog | Nguyen Hung Manh | Dresden
Nach oben scrollen