복붙노트

[HADOOP] 스파크 스트리밍 작업에 broadcast_1의 broadcast_1_piece0를 가져 오지 못했습니다

HADOOP

스파크 스트리밍 작업에 broadcast_1의 broadcast_1_piece0를 가져 오지 못했습니다

내가 클러스터 모드 원사에 스파크 작업을 실행하고 있습니다. 이 작업은 카프카 직접 스트림에서 메시지를 얻을. 나는 방송 변수를 사용하여 30 초마다 검사 점하고있다. 나는이 일을 처음 시작하면 그것은 어떤 문제없이 잘 실행됩니다. 내가 작업을 죽이고 다시 시작하면 그것은 카프카에서 메시지를받을 때 집행의 예외 아래가 발생합니다 :

java.io.IOException: org.apache.spark.SparkException: Failed to get broadcast_1_piece0 of broadcast_1
    at org.apache.spark.util.Utils$.tryOrIOException(Utils.scala:1178)
    at org.apache.spark.broadcast.TorrentBroadcast.readBroadcastBlock(TorrentBroadcast.scala:165)
    at org.apache.spark.broadcast.TorrentBroadcast._value$lzycompute(TorrentBroadcast.scala:64)
    at org.apache.spark.broadcast.TorrentBroadcast._value(TorrentBroadcast.scala:64)
    at org.apache.spark.broadcast.TorrentBroadcast.getValue(TorrentBroadcast.scala:88)
    at org.apache.spark.broadcast.Broadcast.value(Broadcast.scala:70)
    at net.juniper.spark.stream.LogDataStreamProcessor$2.call(LogDataStreamProcessor.java:177)
    at net.juniper.spark.stream.LogDataStreamProcessor$2.call(LogDataStreamProcessor.java:1)
    at org.apache.spark.streaming.api.java.JavaDStreamLike$$anonfun$fn$1$1.apply(JavaDStreamLike.scala:172)
    at org.apache.spark.streaming.api.java.JavaDStreamLike$$anonfun$fn$1$1.apply(JavaDStreamLike.scala:172)
    at scala.collection.Iterator$$anon$13.hasNext(Iterator.scala:371)
    at scala.collection.Iterator$$anon$14.hasNext(Iterator.scala:388)
    at scala.collection.Iterator$$anon$10.hasNext(Iterator.scala:308)
    at scala.collection.Iterator$class.foreach(Iterator.scala:727)
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
    at scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:48)
    at scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:103)
    at scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:47)
    at scala.collection.TraversableOnce$class.to(TraversableOnce.scala:273)
    at scala.collection.AbstractIterator.to(Iterator.scala:1157)
    at scala.collection.TraversableOnce$class.toBuffer(TraversableOnce.scala:265)
    at scala.collection.AbstractIterator.toBuffer(Iterator.scala:1157)
    at scala.collection.TraversableOnce$class.toArray(TraversableOnce.scala:252)
    at scala.collection.AbstractIterator.toArray(Iterator.scala:1157)
    at org.apache.spark.rdd.RDD$$anonfun$take$1$$anonfun$28.apply(RDD.scala:1298)
    at org.apache.spark.rdd.RDD$$anonfun$take$1$$anonfun$28.apply(RDD.scala:1298)
    at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1850)
    at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1850)
    at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
    at org.apache.spark.scheduler.Task.run(Task.scala:88)
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

누구든지 방법이 오류를 해결하는 아이디어가 있습니까?

스파크 버전 : 1.5.0

CDH의 5.5.1

해결법

  1. ==============================

    1.첫 번째 실행 작동 문제가 발생하면 항상 체크 포인트 데이터를 회전 문제가 발생했습니다. 카프카의 첫 번째 메시지 인, 확인하는 뭔가가있는 경우 또한, 체크 포인트의 사용에만 발생합니다. 나는 즉, 어쩌면 프로세스가 여전히 실행 시스템에서 실행되고, 당신은 작업이 실제로 죽은 당신이 있는지 확인하는 것이 좋습니다. 간단한 추신 -Fe을 실행 시도하고 무언가가 계속 실행되고 있는지 확인합니다. 같은 체크 포인트 폴더를 사용하려고 시도하는 두 프로세스가있는 경우, 항상 실패합니다. 도움이 되었기를 바랍니다

    첫 번째 실행 작동 문제가 발생하면 항상 체크 포인트 데이터를 회전 문제가 발생했습니다. 카프카의 첫 번째 메시지 인, 확인하는 뭔가가있는 경우 또한, 체크 포인트의 사용에만 발생합니다. 나는 즉, 어쩌면 프로세스가 여전히 실행 시스템에서 실행되고, 당신은 작업이 실제로 죽은 당신이 있는지 확인하는 것이 좋습니다. 간단한 추신 -Fe을 실행 시도하고 무언가가 계속 실행되고 있는지 확인합니다. 같은 체크 포인트 폴더를 사용하려고 시도하는 두 프로세스가있는 경우, 항상 실패합니다. 도움이 되었기를 바랍니다

  2. from https://stackoverflow.com/questions/36404726/failed-to-get-broadcast-1-piece0-of-broadcast-1-in-spark-streaming-job by cc-by-sa and MIT license