Spark: Не удалось найти CoarseGrainedScheduler

Не уверен, что заставило это исключение запустить работу Spark после запуска в течение нескольких часов.

Выполняется Spark 2.0.2

Любой отзыв для отладки?

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

Ответ 1

Да, теперь я знаю смысл этого загадочного исключения, исполнитель был убит, потому что он превышает порог контейнера.
Существует несколько причин, которые могут произойти, но первым виновником является проверка вашей работы или попытка добавить в ваш кластер больше узлов/исполнителей.

Ответ 2

В основном это означает, что есть еще одна причина неудачи. Попробуйте найти другое исключение в ваших журналах работы.

См. Разделы "Исключения" здесь: https://medium.com/@wx.london.cun/spark-on-yarn-f74e82ab6070

Ответ 3

Это может быть проблема с ресурсами. Попытайтесь увеличить количество ядер и исполнителей, а также назначьте больше ОЗУ для приложения, тогда вы должны увеличить номер раздела вашего RDD, вызвав передел. Идеальное количество разделов зависит от предыдущих настроек. Надеюсь, это поможет.

Ответ 4

Для меня это произошло, когда я указал путь, который не существует для spark.read.load Или, если я укажу неверный формат ввода, т.е. parquet вместо csv.

К сожалению, фактическая ошибка когда-то неактивна и происходит выше трассировки стека. Иногда, хотя вы можете найти еще один набор трассировок стека вместе с этим, который будет более значимым.

Ответ 5

Еще одна глупая причина может заключаться в том, что ваше время в потоковом искре awaitTermination настроено на гораздо меньшее время, и оно было прервано до завершения

ssc.awaitTermination(timeout)
@param timeout: time to wait in seconds