1

Kafka トピックから文字列の行を読み取るだけの Spark Streaming + Kafka ジョブを送信しようとしています。ただし、次の例外が発生しています

15/07/24 22:39:45 エラー TaskSetManager: ステージ 2.0 のタスク 0 が 4 回失敗しました。スレッド「Thread-49」でジョブ例外を中止します。 112.93): java.lang.NoSuchMethodException: kafka.serializer.StringDecoder.(kafka.utils.VerifiableProperties) java.lang.Class.getConstructor0(Class.java:2892) java.lang.Class.getConstructor(Class.java:1723) org.apache.spark.streaming.kafka.KafkaReceiver.onStart(KafkaInputDStream.scala:106) org.apache.spark.streaming.receiver.ReceiverSupervisor.startReceiver(ReceiverSupervisor.scala:121) org.apache.spark.streaming.receiver. ReceiverSupervisor.start(ReceiverSupervisor.scala:106) org.apache.spark.

DSE で使用される spark jar ファイルを確認したところ、そのコンストラクターを持つ kafka_2.10-0.8.0.jar を使用していることがわかります。エラーの原因がわかりません。ここに私の消費者コードがあります

    val sc = new SparkContext(sparkConf)
    val streamingContext = new StreamingContext(sc, SLIDE_INTERVAL)

    val topicMap = kafkaTopics.split(",").map((_, numThreads.toInt)).toMap
    val accessLogsStream = KafkaUtils.createStream(streamingContext, zooKeeper, "AccessLogsKafkaAnalyzer", topicMap)

    val accessLogs = accessLogsStream.map(_._2).map(log => ApacheAccessLog.parseLogLine(log).cache()

更新この例外は、ジョブを送信したときにのみ発生するようです。コードを貼り付けてスパークシェルを使用してジョブを実行すると、正常に動作します

4

1 に答える 1

1

カスタムデコーダーで同じ問題に直面していました。問題を解決した次のコンストラクターを追加しました。

public YourDecoder(VerifiableProperties verifiableProperties)
{

}
于 2015-08-05T12:22:21.973 に答える