首页 > 解决方案 > Spark3 Streaming 中的 Phoenix Driver ClassNotFound

问题描述

我正在将现有的 spark 流应用程序从 spark2.3 迁移到 spark3.1.1。我已经更新了下面提到的 spark 依赖项

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.12</artifactId>
            <version>3.1.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_2.12</artifactId>
            <version>3.1.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.12</artifactId>
            <version>3.1.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql-kafka-0-10_2.12</artifactId>
            <version>3.1.1</version>
        </dependency>

并添加了凤凰依赖

        <dependency>
            <groupId>org.apache.phoenix</groupId>
            <artifactId>phoenix-core</artifactId>
            <version>4.13.2-cdh5.11.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.phoenix</groupId>
            <artifactId>phoenix-spark</artifactId>
            <version>4.13.2-cdh5.11.2</version>
            <scope>provided</scope>
        </dependency>

在运行火花作业时,我得到了java.lang.ClassNotFoundException: org.apache.phoenix.jdbc.PhoenixDriver。以前使用 spark2.3 运行相同的代码,但现在不使用 spark3.1.1。

java.lang.ClassNotFoundException: org.apache.phoenix.jdbc.PhoenixDriver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)

有人可以帮我知道我在这里想念什么吗?

标签: javaapache-sparkspark-structured-streamingphoenixspark3

解决方案


推荐阅读