Flink Kafka runtime error

Posted by Wendong on
URL: http://deprecated-apache-flink-user-mailing-list-archive.369.s1.nabble.com/Flink-Kafka-runtime-error-tp2063.html

Hello,

I am using Flink 0.9, Scala 2.10.4, Kafka 0.8.2.1 and trying to consume Kafka messages in Flink.

Here is the build.sbt:
 
scalaVersion := "2.10.4"

libraryDependencies += "org.apache.flink" % "flink-connector-kafka" % "0.9.0" exclude("org.apache.kafka", "kafka_${scala.binary.version}")
libraryDependencies += "org.apache.kafka" %% "kafka" % "0.8.2.1"

My program TestKafka.scala is simple:

import org.apache.flink.streaming.api.environment._
import org.apache.flink.streaming.connectors.kafka
import org.apache.flink.streaming.connectors.kafka.api._
import org.apache.flink.streaming.util.serialization._

object TestKafka {
  def main(args: Array[String]) {
    val env = StreamExecutionEnvironment.getExecutionEnvironment
    val stream = env
     .addSource(new KafkaSource[String]("localhost:2181", "test", new SimpleStringSchema))
     .print
  }
}

Compilation is fine. However, when I run the jar file using:
./bin/flink run /path/to/project/target/scala-2.10/TestKafka_2.10-1.0.jar, I got runtime errors:

java.lang.NoClassDefFoundError: org/apache/flink/streaming/connectors/kafka/api/KafkaSource
        at TestKafka$.main(TestKafka.scala:10)
        at TestKafka.main(TestKafka.scala)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
.................
Caused by: java.lang.ClassNotFoundException: org.apache.flink.streaming.connectors.kafka.api.KafkaSource
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
.........

Any additional setting is missing?

Thanks for help!

Wendong