简体   繁体   English

Apache Spark Maven Tomcat:运行

[英]Apache spark maven tomcat:run

I want to run Apache Spark from a spring project with multiple maven module. 我想从带有多个maven模块的spring项目中运行Apache Spark。 Spring project running correctly without apache spark dependency but when I added spark dependency I see the following: Spring项目在没有apache spark依赖项的情况下可以正常运行,但是当我添加spark依赖项时,会看到以下内容:

java.lang.ClassCastException: org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servlet.Servlet

spark dependencies: 火花依赖:

 <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_2.10</artifactId>
      <version>1.2.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
    <groupId>org.apache.spark</groupId>
       <artifactId>spark-mllib_2.10</artifactId>
       <version>1.2.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-core</artifactId>
      <version>0.20.2</version>
      <scope>provided</scope>
    </dependency>
   <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-client</artifactId>
      <version>2.5.2</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-assembly-jar</artifactId>
      <version>1.3.0</version>
    </dependency>

Here is what works for me. 这是对我有用的。 Reason is spark engine has transitive dependencies to a particular version of servlet api and implementation. 原因是spark引擎具有对特定版本的servlet api和实现的传递依赖。 In the classpath it finds first smth different and complains about it. 在类路径中,它发现第一个不同之处并对此抱怨。

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.10</artifactId>
    <version>${spark.version}</version>
    <exclusions>
        <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.glassfish</groupId>
            <artifactId>javax.servlet</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.eclipse.jetty.orbit</groupId>
            <artifactId>javax.servlet</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-mllib_2.10</artifactId>
    <version>${spark.version}</version>
</dependency>

Also in order to use web service as a driver I believe it's required to use compile scope of the spark libraries. 同样,为了将Web服务用作驱动程序,我相信需要使用spark库的编译范围。

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM