简体   繁体   English

如何在 IntelliJ IDEA 中使用 Kafka Direct Stream 运行 Spark Streaming 应用程序?

[英]How to run Spark Streaming application with Kafka Direct Stream in IntelliJ IDEA?

I am running the program for Spark streaming using Kafka and getting error.我正在使用Kafka运行Spark流的程序并出现错误。 All imports are done and looks resolved without any issue.所有导入都已完成,看起来已解决,没有任何问题。

I have written few code using IntelliJ IDEA and getting an error while running the program for the first time and I am new to Java but from C# background.我使用IntelliJ IDEA编写了一些代码,但在第一次运行程序时出现错误,我是Java新手,但来自C#背景。 So couldn't understand the issue.所以无法理解这个问题。 The zookeeper service is started, along with kafka-server started and also created a topic called topicA . zookeeper服务启动, kafka-server启动,并创建了一个名为topicA的主题。 Producer is also ready to stream data but i have problem running code in IntelliJ for listening to the queue Producer 也已准备好流式传输数据,但我在IntelliJ 中运行代码以侦听队列时遇到问题

def main(args: Array[String]) {
  val kafkaParams = Map[String, Object](
    "bootstrap.servers" -> "localhost:9092",
    "key.deserializer" -> classOf[StringDeserializer],
    "value.deserializer" -> classOf[StringDeserializer],
    "group.id" -> "0",
    "auto.offset.reset" -> "latest",
    "enable.auto.commit" -> (false: java.lang.Boolean)
  )
  val conf = new SparkConf().setAppName("Simple Streaming Application")
  val ssc = new StreamingContext(conf, Seconds(5))
  val topics = Array("topicA")
  val stream = KafkaUtils.createDirectStream[String, String](
    ssc,
    PreferConsistent,
    Subscribe[String, String](topics, kafkaParams)
  )

  stream.foreachRDD { rdd =>
    // Get the offset ranges in the RDD
    val offsetRanges = rdd.asInstanceOf[HasOffsetRanges].offsetRanges
    for (o <- offsetRanges) {
      println(s"${o.topic} ${o.partition} offsets: ${o.fromOffset} to ${o.untilOffset}")
    }
  }

  ssc.start

  // the above code is printing out topic details every 5 seconds
  // until you stop it.

  ssc.stop(stopSparkContext = false)
}

Exception produced is:产生的异常是:

Exception in thread "main" java.lang.VerifyError: class scala.collection.mutable.WrappedArray overrides final method toBuffer.()Lscala/collection/mutable/Buffer;
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.spark.SparkConf.loadFromSystemProperties(SparkConf.scala:75)
at org.apache.spark.SparkConf.<init>(SparkConf.scala:70)
at org.apache.spark.SparkConf.<init>(SparkConf.scala:57)
at sparkStreamClass$.main(sparkStreamClass.scala:20)
at sparkStreamClass.main(sparkStreamClass.scala)

here is my pom.xml这是我的 pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.learnStreaming</groupId>
    <artifactId>sparkProjectArtifact</artifactId>
    <version>1.0-SNAPSHOT</version>

<dependencies>
    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.11</artifactId>
        <version>2.3.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming-kafka-0-10 -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
        <version>2.3.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming_2.11</artifactId>
        <version>2.3.1</version>
        <scope>provided</scope>
    </dependency>

</dependencies>
</project>

modified pom.xml and it worked for me !修改了 pom.xml,它对我有用!

 <properties>
    <spark.version>2.1.0</spark.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.11</artifactId>
        <version>${spark.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming_2.11</artifactId>
        <version>${spark.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
        <version>${spark.version}</version>
    </dependency>
</dependencies>

我也遇到这个问题,是因为使用了错误的Scala版本。例如,我在我的maven构建插件中定义了scala2.11.8,但我使用的是scala2.13。所以检查pom构建scala版本并在你的ide中使用scala verison .

We get this issue because of version incompatibility between SCALA and SPARK libraries我们遇到这个问题是因为 SCALA 和 SPARK 库之间的版本不兼容

I was getting similar error when I had following configuration: spark-core_2.11 , spark-sql_2.11 , Scala - 2.13当我有以下配置时,我遇到了类似的错误: spark-core_2.11 , spark-sql_2.11 , Scala - 2.13

I installed scala 2.11 in my system and added new Scala SDk libraries to program module and it worked.我在我的系统中安装了Scala 2.11并将新的 Scala SDk 库添加到程序模块并且它工作正常。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在Kafka Direct Stream中使用Spark Structured Streaming? - How to use Spark Structured Streaming with Kafka Direct Stream? Spark Streaming Direct Kafka API,OffsetRanges:如何处理首次运行 - Spark Streaming Direct Kafka API, OffsetRanges : How to handle first run 如何在Intellij IDEA中运行spark示例程序 - How to run a spark example program in Intellij IDEA 如何在 IntelliJ IDEA 中为 Spark 应用程序设置日志记录级别? - How to set up logging level for Spark application in IntelliJ IDEA? 如何在Intellij中运行Spark scala应用程序 - How to run Spark scala application inside Intellij Kafka Spark Streaming:如何在 spark steaming 创建的多个表上运行 Spark SQL 查询? - Kafka Spark Streaming: How to run Spark SQL query on multiple tables created by spark steaming? 在IntelliJ Idea中运行Apache Spark示例应用程序 - Running Apache Spark Example Application in IntelliJ Idea 如何使用Scala 2.11将Kafka作为Apache Spark的流运行? - How to run Kafka as a stream for Apache Spark using Scala 2.11? 如何在 Intellij IDEA 中调试 flink streaming job - How to debug flink streaming job in Intellij IDEA 如何使用 Spark Structured Streaming 将数据从 Kafka 主题流式传输到 Delta 表 - How to stream data from Kafka topic to Delta table using Spark Structured Streaming
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM