web-dev-qa-db-ja.com

Apache-sparkからのピアメッセージによる接続リセットを修正する方法は?

私は非常に頻繁に次の例外を取得し続けていますが、なぜこれが起こっているのだろうか?調査した後、私は.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)
14
user1870400

私は多くのことを試しても同じエラーが発生していました。非常に長い時間実行した後、私の仕事はこのエラーを投げて立ち往生していました。私は解決に役立ついくつかの回避策を試しました。ただし、少なくとも自分の仕事がうまくいくと、同じエラーが発生します。

  1. 1つの理由は、エグゼキュータがマスターからの接続を失ったと考えて自分自身を殺すことです。以下の設定をspark-defaults.confファイルに追加しました。

    spark.network.timeout 10000000 spark.executor.heartbeatInterval 10000000基本的に、ネットワークのタイムアウトとハートビートの間隔を増やしました

  2. スタックしていた特定のステップ、処理に使用されたデータフレームをキャッシュしただけです(スタックしていたステップで)

注:-これらは回避策です。エラーログに同じエラーが表示されますが、ジョブは終了しません。

8
braj