2017-08-04 16 views
0

KafkaDirect Streamアプローチを使用)からデータを読み取ってKafkaに結果を公開するSpark Streamingアプリを実行しています。アプリの入力レートとアプリのスループットは、約1時間か2時間安定しています。その後、私はActive Batchesキューに非常に長い時間(30mins +の間)残っているバッチを見始めます。 Spark driverログには、エラー、次の2種類を示し、これらのエラーの発生時には、立ち往生バッチの開始時刻とよく一致:スパークストリーミング保留バッチ

まずエラーの種類

ERROR LiveListenerBus: Dropping SparkListenerEvent because no remaining room in event queue. This likely means one of the SparkListeners is too slow and cannot keep up with the rate at which tasks are being started by the scheduler. 

セカンドのエラータイプ

ERROR StreamingListenerBus: Listener StreamingJobProgressListener threw an exception 
java.util.NoSuchElementException: key not found: 1501806558000 ms 
    at scala.collection.MapLike$class.default(MapLike.scala:228) 
    at scala.collection.AbstractMap.default(Map.scala:59) 
    at scala.collection.mutable.HashMap.apply(HashMap.scala:65) 
    at org.apache.spark.streaming.ui.StreamingJobProgressListener.onOutputOperationCompleted(StreamingJobProgressListener.scala:134) 
    at org.apache.spark.streaming.scheduler.StreamingListenerBus.doPostEvent(StreamingListenerBus.scala:67) 
    at org.apache.spark.streaming.scheduler.StreamingListenerBus.doPostEvent(StreamingListenerBus.scala:29) 
    at org.apache.spark.util.ListenerBus$class.postToAll(ListenerBus.scala:63) 
    at org.apache.spark.streaming.scheduler.StreamingListenerBus.postToAll(StreamingListenerBus.scala:29) 
    at org.apache.spark.streaming.scheduler.StreamingListenerBus.onOtherEvent(StreamingListenerBus.scala:43) 
    at org.apache.spark.scheduler.SparkListenerBus$class.doPostEvent(SparkListenerBus.scala:75) 
    at org.apache.spark.scheduler.LiveListenerBus.doPostEvent(LiveListenerBus.scala:36) 
    at org.apache.spark.scheduler.LiveListenerBus.doPostEvent(LiveListenerBus.scala:36) 
    at org.apache.spark.util.ListenerBus$class.postToAll(ListenerBus.scala:63) 
    at org.apache.spark.scheduler.LiveListenerBus.postToAll(LiveListenerBus.scala:36) 
    at org.apache.spark.scheduler.LiveListenerBus$$anon$1$$anonfun$run$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(LiveListenerBus.scala:94) 
    at org.apache.spark.scheduler.LiveListenerBus$$anon$1$$anonfun$run$1$$anonfun$apply$mcV$sp$1.apply(LiveListenerBus.scala:79) 
    at org.apache.spark.scheduler.LiveListenerBus$$anon$1$$anonfun$run$1$$anonfun$apply$mcV$sp$1.apply(LiveListenerBus.scala:79) 
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58) 
    at org.apache.spark.scheduler.LiveListenerBus$$anon$1$$anonfun$run$1.apply$mcV$sp(LiveListenerBus.scala:78) 
    at org.apache.spark.util.Utils$.tryOrStopSparkContext(Utils.scala:1279) 
    at org.apache.spark.scheduler.LiveListenerBus$$anon$1.run(LiveListenerBus.scala:77) 

しかし、私はこれらのエラーを解釈するかどうかはわかりませんし、大規模なオンライン検索にもかかわらず、私は共同uldn'tはこれに関連する有用な情報を見つける。

質問

  1. これらのエラーは何を意味するのですか?リソースの制限(CPU、メモリなど)を示していますか?
  2. これらのエラーを修正するにはどうすればよいでしょうか?

ありがとうございます。

答えて

0

実際のバッチ処理時間よりもバッチ処理時間が短いですか?デフォルトのバッチキューサイズは1000です。したがって、スパークストリーミングバッチキューはオーバーフローする可能性があります。

+0

これを書き直すことを検討してください。これはむしろ平凡なコメントのように読まれるものであり、本当に*答える*ものではありません。 – GhostCat

関連する問題