gpt4 book ai didi

apache-spark - ShuffleBlockFetcherIterator 什么时候会抛出 "Failed to get block(s)"异常?

转载 作者:行者123 更新时间:2023-12-05 01:01:01 24 4
gpt4 key购买 nike

在集群模式下运行的 Spark 应用程序中,我遇到了以下异常。我知道这可能是由于金刚砂问题。但正如错误所说,它无法连接到节点。但我确定节点可用并且可以连接。谁能知道这个错误的主要原因是什么以及如何解决它?

17/10/31 17:10:54 ERROR ShuffleBlockFetcherIterator: Failed to get block(s) from AUPER01-02-10-12-0.prod.vroc.com.au:36787
java.io.IOException: Failed to connect to AUPER01-02-10-12-0.prod.vroc.com.au/192.168.11.22:36787
at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:232)
at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:182)
at org.apache.spark.network.netty.NettyBlockTransferService$$anon$1.createAndStart(NettyBlockTransferService.scala:97)
at org.apache.spark.network.shuffle.RetryingBlockFetcher.fetchAllOutstanding(RetryingBlockFetcher.java:141)
at org.apache.spark.network.shuffle.RetryingBlockFetcher.access$200(RetryingBlockFetcher.java:43)
at org.apache.spark.network.shuffle.RetryingBlockFetcher$1.run(RetryingBlockFetcher.java:171)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
at java.lang.Thread.run(Thread.java:745)
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: AUPER01-02-10-12-0.prod.vroc.com.au/192.168.11.22:36787
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:257)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:291)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:631)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:566)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:480)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:442)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131)
... 2 more

最佳答案

似乎其中一个执行者死亡,而其他执行者试图从早期的 shuffle 阶段拉 block 以完成 Spark 作业。

在您spark-submit将 Spark 应用程序添加到集群之后,该应用程序会立即获得一组用于执行程序的机器。他们负责执行任务并将结果缓存(在内存和/或磁盘中)。

每个执行器都有自己的 BlockManager,负责管理数据集(作为 block )。

Spark 应用程序中的 BlockManager 必须全部可用,否则 Spark 应用程序将重新触发任务执行。


ShuffleBlockFetcherIterator是一个 Scala Iterator,它从本地和远程 BlockManager 获取多个 shuffle blocks(又名 shuffle map output)。

关于apache-spark - ShuffleBlockFetcherIterator 什么时候会抛出 "Failed to get block(s)"异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47032039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com