IDEA搭建spark maven项目的 pom.xml文件配置

Posted 怒上王者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA搭建spark maven项目的 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>mvnProject</groupId>
  <artifactId>mvnProject</artifactId>
  <version>1.0-SNAPSHOT</version>
 
  <name>mvnProject</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>
 
  <!-- 配置以下可以解决 在jdk1.8环境下打包时报错 “-source 1.5 中不支持 lambda 表达式” -->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
 
  <dependencies>
    <!-- Spark-core -->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_2.11</artifactId>
      <version>2.3.1</version>
    </dependency>
    <!-- SparkSQL -->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-sql_2.11</artifactId>
      <version>2.3.1</version>
    </dependency>
    <!-- SparkSQL  ON  Hive-->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-hive_2.11</artifactId>
      <version>2.3.1</version>
    </dependency>
    <!--mysql依赖的jar包-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.47</version>
    </dependency>
    <!--SparkStreaming-->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-streaming_2.11</artifactId>
      <version>2.3.1</version>
      <!--<scope>provided</scope>-->
    </dependency>
    <!-- SparkStreaming + Kafka -->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
      <version>2.3.1</version>
    </dependency>
    <!-- 向kafka 生产数据需要包 -->
    <dependency>
      <groupId>org.apache.kafka</groupId>
      <artifactId>kafka-clients</artifactId>
      <version>0.10.0.0</version>
    </dependency>
    <!--连接 Redis 需要的包-->
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.6.1</version>
    </dependency>
 
    <!-- Scala 包-->
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-library</artifactId>
      <version>2.11.7</version>
    </dependency>
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-compiler</artifactId>
      <version>2.11.7</version>
    </dependency>
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-reflect</artifactId>
      <version>2.11.7</version>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.12</version>
    </dependency>
    <dependency>
      <groupId>com.google.collections</groupId>
      <artifactId>google-collections</artifactId>
      <version>1.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
 
    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-mllib-local -->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-mllib-local_2.11</artifactId>
      <version>2.3.1</version>
    </dependency>
 
 
  </dependencies>
 
  <build>
    <plugins>
 
      <!-- 在maven项目中既有java又有scala代码时配置 maven-scala-plugin 插件打包时可以将两类代码一起打包 -->
      <plugin>
        <groupId>org.scala-tools</groupId>
        <artifactId>maven-scala-plugin</artifactId>
        <version>2.15.2</version>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>testCompile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
 
      <!-- maven 打jar包需要插件 -->
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <!-- 设置false后是去掉 MySpark-1.0-SNAPSHOT-jar-with-dependencies.jar 后的 “-jar-with-dependencies” -->
          <!--<appendAssemblyId>false</appendAssemblyId>-->
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
          <archive>
            <manifest>
              <mainClass>com.bjsxt.scalaspark.sql.windows.OverFunctionOnHive</mainClass>
            </manifest>
          </archive>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>assembly</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
 
 
      <!-- 以上assembly可以将依赖的包打入到一个jar包中,下面这种方式是使用maven原生的方式打jar包,不将依赖的包打入到最终的jar包中 -->
      <!--<plugin>-->
      <!--<groupId>org.apache.maven.plugins</groupId>-->
      <!--<artifactId>maven-jar-plugin</artifactId>-->
      <!--<version>2.4</version>-->
      <!--<configuration>-->
      <!--<archive>-->
      <!--<manifest>-->
      <!--<addClasspath>true</addClasspath>-->
      <!--<!– 指定当前主类运行时找依赖的jar包时 所有依赖的jar包存放路径的前缀 –>-->
      <!--<classpathPrefix>/alljars/lib</classpathPrefix>-->
      <!--<mainClass>com.bjsxt.javaspark.sql.CreateDataSetFromHive</mainClass>-->
      <!--</manifest>-->
      <!--</archive>-->
      <!--</configuration>-->
      <!--</plugin>-->
 
 
      <!-- 拷贝依赖的jar包到lib目录 -->
      <!--<plugin>-->
      <!--<groupId>org.apache.maven.plugins</groupId>-->
      <!--<artifactId>maven-dependency-plugin</artifactId>-->
      <!--<executions>-->
      <!--<execution>-->
      <!--<id>copy</id>-->
      <!--<phase>package</phase>-->
      <!--<goals>-->
      <!--<goal>copy-dependencies</goal>-->
      <!--</goals>-->
      <!--<configuration>-->
      <!--<outputDirectory>-->
      <!--<!– 将依赖的jar 包复制到target/lib下–>-->
      <!--${project.build.directory}/lib-->
      <!--</outputDirectory>-->
      <!--</configuration>-->
      <!--</execution>-->
      <!--</executions>-->
      <!--</plugin>-->
 
    </plugins>
  </build>
 
</project>

以上是关于IDEA搭建spark maven项目的 pom.xml文件配置的主要内容,如果未能解决你的问题,请参考以下文章

idea spark 创建maven项目

用IDEA编写spark的WordCount

多模块项目搭建(IDEA+Maven+SpringBoot)

在IntelliJ IDEA中配置Spark(Java API)运行环境

Maven 搭建spring boot多模块项目

使用IDEA快速搭建基于Maven的SpringBoot项目