私は非常に頻繁に次の例外を取得し続けていますが、なぜこれが起こっているのだろうか?調査した後、私は.set("spark.submit.deployMode", "nio");
を行うことができることがわかりましたが、それも機能せず、spark 2.0.0
WARN TransportChannelHandler: Exception in connection from /172.31.3.245:46014
Java.io.IOException: Connection reset by peer
at Sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at Sun.nio.ch.SocketDispatcher.read(SocketDispatcher.Java:39)
at Sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.Java:223)
at Sun.nio.ch.IOUtil.read(IOUtil.Java:192)
at Sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.Java:380)
at io.netty.buffer.PooledUnsafeDirectByteBuf.setBytes(PooledUnsafeDirectByteBuf.Java:221)
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.Java:898)
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.Java:242)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.Java:119)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.Java:511)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.Java:468)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.Java:382)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.Java:354)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.Java:112)
私は多くのことを試しても同じエラーが発生していました。非常に長い時間実行した後、私の仕事はこのエラーを投げて立ち往生していました。私は解決に役立ついくつかの回避策を試しました。ただし、少なくとも自分の仕事がうまくいくと、同じエラーが発生します。
1つの理由は、エグゼキュータがマスターからの接続を失ったと考えて自分自身を殺すことです。以下の設定をspark-defaults.confファイルに追加しました。
spark.network.timeout 10000000 spark.executor.heartbeatInterval 10000000基本的に、ネットワークのタイムアウトとハートビートの間隔を増やしました
スタックしていた特定のステップ、処理に使用されたデータフレームをキャッシュしただけです(スタックしていたステップで)
注:-これらは回避策です。エラーログに同じエラーが表示されますが、ジョブは終了しません。