当前位置: 首页 > 知识库问答 >
问题:

Spark 2.2.0流无法找到数据源:kafka

仲孙思源
2023-03-14
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-sql-kafka-0-10_2.11</artifactId>
  <version>2.2.0</version>

到maven依赖项

下面是我的pom.xml

  <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>***</groupId>
  <artifactId>***</artifactId>
  <version>1.0</version>
  <packaging>jar</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <build>
    <sourceDirectory>src/main/scala</sourceDirectory>

    <plugins>         
      <plugin>
        <groupId>org.scala-tools</groupId>
        <artifactId>maven-scala-plugin</artifactId>
        <version>2.11</version>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>testCompile</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <scalaVersion>2.11.8</scalaVersion>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.0.2</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>

    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.6</version>
        <groupId>org.apache.maven.plugins</groupId>
        <configuration>
            <appendAssemblyId>false</appendAssemblyId>
            <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
            <archive>
                <manifest>
                    <mainClass>***</mainClass>
                </manifest>
            </archive>
        </configuration>
        <executions>
            <execution>
                <id>make-assembly</id>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    </plugins>

 </build>


  <dependencies>

    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-sql_2.11</artifactId>
      <version>2.2.0</version>
    </dependency>

    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-sql-kafka-0-10_2.11</artifactId>
      <version>2.2.0</version>
    </dependency>


    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
      <version>2.2.0</version>
    </dependency>

    <dependency>
      <groupId>org.scalaj</groupId>
      <artifactId>scalaj-http_2.11</artifactId>
      <version>2.2.0</version>
    </dependency>

  </dependencies>
</project>

我使用以下方式包装所有内容:

mvn clean package

但是我怎么能修改我的pom到advoid这样做呢?在我的maven repo中,我可以看到spark-sql-kafka-0-102.11-2.2.0.jar已经下载。那么为什么我需要在spark Submit期间手动添加依赖项呢?我觉得pom.xml中可能有一些错误,即使我使用程序集来构建我的JAR。

希望有人能帮帮我!

共有1个答案

施昊然
2023-03-14

我终于解决了我的问题。我更改了pom.xml,如下所示:

 <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>***</groupId>
  <artifactId>***</artifactId>
  <version>1.0</version>
  <packaging>jar</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <spark.version>2.2.0</spark.version>
  </properties>

    <dependencies>

  <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_2.11</artifactId>
      <version>${spark.version}</version>
      <scope>${spark.scope}</scope>
  </dependency>

  <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-sql_2.11</artifactId>
      <version>${spark.version}</version>
      <scope>${spark.scope}</scope>
  </dependency>
  <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-sql-kafka-0-10_2.11</artifactId>
      <version>${spark.version}</version>
  </dependency>

  </dependencies>

<profiles>
    <profile>
        <id>default</id>
        <properties>
            <profile.id>dev</profile.id>
            <spark.scope>compile</spark.scope>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>test</id>
        <properties>
            <profile.id>test</profile.id>
            <spark.scope>provided</spark.scope>
        </properties>
    </profile>
    <profile>
        <id>online</id>
        <properties>
            <profile.id>online</profile.id>
            <spark.scope>provided</spark.scope>
        </properties>
    </profile>
</profiles>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.scala-tools</groupId>
                <artifactId>maven-scala-plugin</artifactId>
                <version>2.11</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <scalaVersion>2.11.8</scalaVersion>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <appendAssemblyId>false</appendAssemblyId>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>***</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

    </build>

</project>

基本上,我添加了一个profiles部分,并为每个依赖项添加范围。然后,我没有使用mvn clean package,而是使用了mvn clean install-ponline-dskiptests。令人惊讶的是,一切都很完美。

我不是很清楚为什么这个方法起作用的细节,但是从jar文件中我可以看到mvn clean包创建的jar包含了很多文件夹,而另一个方法只包含了一些文件夹。可能第一种方法中的文件夹之间有些冲突。不知道,希望有经验的人能解释一下。

 类似资料:
  • 我有一个MS SQLServer 2008 a数据库,名为:“conpool”。并在那里创建了一个具有id、全名和年龄的表。现在,我已经在Netbeans 7.3和Tomcat 7.0.30中的Java中实现了一个连接池,以避免每次都将连接绑定到我的数据库,并且我可以对数据库进行查询。 我的连接池: //------------------------Beginn JDBC连接池---------

  • 问题内容: 我正在尝试在Jetty 7.4中配置数据源。我可以使用Tomcat context.xml中的Web应用程序成功完成此操作。 这就是我在jetty.xml中的内容(这将是该码头实例中的唯一应用程序,因此我不介意在服务器范围内使用数据库连接-我宁愿不必在战争中进行配置) 。它位于最后一个上方的最底部: 在我的Web应用程序的WEB-INF / web.xml中: 最后,在我的hibern

  • d>f=spark\....readstream\....format(“Kafka”)\... .选项(“kafka.bootstrap.servers”,“localhost:9092”)\... .选项(“subscribe”,“data_wm”)\....load()跟踪(最近的调用):文件“,第5行,在文件”/usr/local/spark/python/pyspark/sql/stre

  • 我使用的是Spring Boot MVC,Spring的在数据源配置之前被调用,数据源配置加载到中。 总是首先被调用,因此从来没有为Autowed定义过bean。 我尝试了从到的所有方法。我找不到一个像样的解释。但是我需要在数据源运行WebSecurity之前为它创建一个Bean

  • 我正在尝试使用新的wildfly 9.0.1 final。之前,我使用的是Wildfly8.2。我已经将standalone/config文件夹从8.2复制到了新的wildfly 9中--但是出现了很多错误--看起来他无法添加数据源...但是allready将mssql驱动程序部署到了新的wildfly中: 17:09:48,419错误[org.jboss.as.Controller.manage

  • 问题内容: 我有一个大型的maven项目,该项目使用pmd插件进行代码质量检查。 自从我开始使用Pmd插件以来,我收到以下警告消息: 我用谷歌搜索,发现我需要实现jxr插件。 所以我将以下内容添加到主pom.xml文件的build属性中。 哭泣并没有真正改变任何东西。 为了解决此警告消息,我需要实现什么想法? 输出 谢谢! 问题答案: 您应将添加到 部分。 重新运行并享受。 顺便说一句,也许您需要