簡體   English   中英

Apache Spark - RetryingBlockFetcher 錯誤:開始獲取 1 個未完成塊時出現異常

[英]Apache Spark - ERROR RetryingBlockFetcher: Exception while beginning fetch of 1 outstanding blocks

我在具有以下配置的集群中運行 Spark 作業:

--master yarn --deploy-mode client
--executor-memory 4g 
--executor-cores 2 
--driver-memory 6g 
--num-executors 12 

當我在驅動程序中采集數據樣本時,作業中出現了問題。 運行的命令如下:

rddTuplesA.sample(false, 0.03, 261).collect().forEach((tuple) ->
                    //build histogram...
            ); 

rddTuplesA object 是JavaRDD<Tuple3<String, Double, Double>>類型。

作業拋出以下錯誤:

22/04/14 23:19:22 錯誤 RetryingBlockFetcher:開始獲取 1 個未完成塊時出現異常 java.io.IOException:無法連接到 snf-8802/192.168.0.6:35615 at org.apache.sactclientFclientFclient.Transport.network.network .createClient(TransportClientFactory.java:287) at org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:218) at org.apache.spark.network.netty.NettyBlockTransferService$$anon$2.createAndStart(NettyBlockTransferService .scala:123) at org.apache.spark.network.shuffle.RetryingBlockFetcher.fetchAllOutstanding(RetryingBlockFetcher.java:153) at org.apache.spark.network.shuffle.RetryingBlockFetcher.start(RetryingBlockFetcher.java:133) at org. apache.spark.network.netty.NettyBlockTransferService.fetchBlocks(NettyBlockTransferService.scala:143)在 org.apache.spark.network.BlockTransferService.fetchB lockSync(BlockTransferService.scala:102) at org.apache.spark.storage.BlockManager.fetchRemoteManagedBuffer(BlockManager.scala:1061) at org.apache.spark.storage.BlockManager.$anonfun$getRemoteBlock$8(BlockManager.scala:1005) at scala.Option.orElse(Option.scala:447) at org.apache.spark.storage.BlockManager.getRemoteBlock(BlockManager.scala:1005) at org.apache.spark.storage.BlockManager.getRemoteBytes(BlockManager.scala:1143 ) 在 org.apache.spark.scheduler.TaskResultGetter$$anon$3.$anonfun$run$1(TaskResultGetter.scala:88) 在 scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV15382.48$) :23)atrg.apache.spark.util.utils $ .loguncaughtexceptions(utils.scala:1996)org.apache.spark.scheduler.taskrester.taskrester.taskresulter.tastter.spark.schedul.tastter.taster.taster.taster.taster.taster.taster.3.3.3.3.3.3.3.3.3.3.3.3.3.3.honon $ 3. .concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecut or.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: io.netty.channel.AbstractChannel $AnnotatedConnectException:連接被拒絕:snf-8802/192.168.0.6:35615 原因:java.net.ConnectException:連接在 sun.nio.ch.SocketChannelImpl.checkConnect(本機方法)在 sun.nio.ch.SocketChannelImpl.finishConnect 被拒絕(SocketChannelImpl.java:714) 在 io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:330) 在 io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioUnsafe.finishConnect(AbstractNioUnsafe.finishConnect(Abstract84.84338) io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:702)在io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)在io.netty.channel.nio.NioEventLoop.processSelectedKeys( NioEventLoop.java:576) 在 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) 在 io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) 在 io.netty.util.internal.ThreadExecutorMap$2 .run(ThreadExecutorMap.java:74) 在 io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) 在 java.lang.Thread.run(Thread.8821324:7488)8

但是,當我得到一個較小的樣本時,這項工作就完美無缺,例如

rddTuplesA.sample(false, 0.01, 261).collect().forEach((tuple) ->
                        //build histogram...
                ); 

是否有任何配置參數可以更改以使作業運行? 看來這個問題與.network有關。 此外,如果由於 memory 問題而發生這種情況,驅動程序上是否會出現 memory 相關錯誤? 就像是:

java.lang.OutOfMemoryError:超出 GC 開銷限制

終於解開了謎團。 問題與 cluster.network 有關。 具體來說,我在每台機器(節點)的 /etc/hosts 文件中添加了它們的本地 ip 映射到它們的主機名(作為別名),例如:

192.168.0.1 snf-1234
192.168.0.2 snf-1235
...

似乎當樣本很大時,由於 ipv4 和主機名之間缺少匹配,驅動程序試圖建立無法實現的連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM