web-dev-qa-db-fra.com

Spark: impossible de trouver CoarseGrainedScheduler

Je ne suis pas sûr de la cause de cette exception lors de l'exécution de mon travail Spark après quelques heures d'exécution.

Suis Spark 2.0.2

Un conseil de débogage?

2016-12-27 03:11:22,199 [shuffle-server-3] ERROR org.Apache.spark.network.server.TransportRequestHandler - Error while invoking RpcHandler#receive() for one-way message.
org.Apache.spark.SparkException: Could not find CoarseGrainedScheduler.
    at org.Apache.spark.rpc.netty.Dispatcher.postMessage(Dispatcher.scala:154)
    at org.Apache.spark.rpc.netty.Dispatcher.postOneWayMessage(Dispatcher.scala:134)
    at org.Apache.spark.rpc.netty.NettyRpcHandler.receive(NettyRpcEnv.scala:571)
    at org.Apache.spark.network.server.TransportRequestHandler.processOneWayMessage(TransportRequestHandler.Java:180)
    at org.Apache.spark.network.server.TransportRequestHandler.handle(TransportRequestHandler.Java:109)
    at org.Apache.spark.network.server.TransportChannelHandler.channelRead0(TransportChannelHandler.Java:119)
    at org.Apache.spark.network.server.TransportChannelHandler.channelRead0(TransportChannelHandler.Java:51)
    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.Java:105)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.Java:308)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.Java:294)
    at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.Java:266)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.Java:308)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.Java:294)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.Java:103)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.Java:308)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.Java:294)
    at org.Apache.spark.network.util.TransportFrameDecoder.channelRead(TransportFrameDecoder.Java:85)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.Java:308)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.Java:294)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.Java:846)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.Java:131)
    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(SingleThreadEve
9

Oui, maintenant que je connais le sens de cette exception cryptique, l'exécuteur a été tué parce qu'il dépasse le seuil de conteneur. 
Plusieurs raisons peuvent arriver, mais le premier coupable consiste à vérifier votre travail ou à ajouter d'autres nœuds/exécuteurs à votre cluster.

10

En gros, cela signifie qu’il existe une autre raison à l’échec . Essayez de rechercher une autre exception dans les journaux de vos travaux.

Voir les sections "Exceptions" ici: https://medium.com/@wx.london.cun/spark-on-yarn-f74e82ab6070

6
Tomer

Cela pourrait être un problème de ressources. Essayez d’augmenter le nombre de cœurs et d’exécuteur et d’attribuer plus de RAM à l’application, puis augmentez le nombre de partitions de votre RDD en appelant une partition. Le nombre idéal de partitions dépend des paramètres précédents. J'espère que cela t'aides.

4
Beniamino Del Pizzo

Pour moi, cela s'est produit lorsque j'ai spécifié un chemin qui n'existe pas pour un spark.read.load ou si j'ai spécifié un format incorrect pour l'entrée, à savoir parquet au lieu de csv.

Malheureusement, l'erreur réelle est parfois silencieuse et se produit au-dessus de la trace de la pile. Parfois, cependant, vous pouvez trouver un autre ensemble de traces de pile avec celui-ci qui sera plus significatif.

0
Carlos Bribiescas