通过MAVEN安装Spark、&& EclipseIDE

Spark Installation with Maven & Eclipse IDE

文章目录

  • Spark Installation with Maven & Eclipse IDE
    • 安装说明
      • Maven & Eclipse IDE说明
        • 参考网站
    • 安装过程
      • JDK安装
      • Eclipse IDE安装
      • Maven安装
      • Spark安装
        • 新建Maven项目
        • 配置Maven依赖(安装Spark框架)
          • `pom.xml`文件说明
        • 配置Run指令
        • 运行

安装说明

更多关注
https://www.zhihu.com/column/c_1488286320929333249

目前存在多种安装Spark框架的方式。经过实验和比较,在Windows 10操作系统上通过Maven和Eclipse IDE来安装Spark框架较为方便。在Linux操作系统上,也推荐通过Maven来安装Spark框架。

Maven & Eclipse IDE说明

Maven是一个主要为Java项目提供统一的编译系统,简化编译过程,提供项目依赖管理和项目版本管理的程序开发框架。

Eclipse IDE是一个可在Linux/macOS/Windows上运行的集成开发环境。它主要支持Java项目开发,同时也支持多种开发语言,以及Ant,Maven等项目编译框架。

参考网站

  • Maven项目官方网站
  • Eclipse项目官方网站

安装过程

JDK安装

JDK (Java Development Kit)是由Oracle维护的Java开发程序包。目前最新的版本是JDK 14。由于兼容性问题,目前依然有许多项目使用JDK 8。现在我们选择安装最新的稳定版即可。

Eclipse IDE安装

Eclipse IDE安装要下载一个在线安装程序并运行。安装过程需要连接外网。如果需要在没有网络环境的计算机上安装Eclipse,可以在官网上选Download Package(在DOWNLOAD 64 BIT按钮下面)。

安装时选择第一项,Eclipse IDE for Java Developers

安装Eclipse IDE前最好先安装JDK,安装程序会自动搜索JDK的安装位置并进行设置,否则之后再来配置会比较麻烦。

Maven安装

Eclipse IDE已经自动集成了Maven框架。

Spark安装

我们使用Eclipse自带的Maven来安装Spark

新建Maven项目

  • 打开Eclipse以后,先新建一个Maven项目。选择菜单栏中的Flie -> New -> Project…,在弹出窗口中选择Maven -> Maven Project
  • 在New Maven Project窗口中,勾选"Create a simple project (skip archetype selection)"(之后我们手动配置),点击Next按钮
  • 配置这个新的Maven项目,可以选择方便自己记忆的名字。我的命名如下:
    • Group Id: me.spark.app
    • Artifact Id: mySparkApp
    • Version: 1.0
    • Packaging: jar
    • Name: playersStats
  • 点击Finish按钮,至此完成新建Maven项目。你可以在左侧的Package Explorer里找到这个项目

配置Maven依赖(安装Spark框架)

pom.xml文件说明

新建完Maven项目之后,可以在项目中找到一个名为pom.xml的文件。通过修改这个文件的内容,我们就可以利用强大的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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0modelVersion>
  <groupId>me.spark.appgroupId>
  <artifactId>playersStatsartifactId>
  <version>1.0version>
  <name>playersStatsname>
  
  <url>http://www.example.comurl>
  
  <properties>
    <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    <maven.compiler.source>14maven.compiler.source>
    <maven.compiler.target>14maven.compiler.target>
  properties>
  
  <dependencies>
    
	<dependency>
      <groupId>org.apache.maven.pluginsgroupId>
      <artifactId>maven-assembly-pluginartifactId>
      <version>3.3.0version>
    dependency>
  	
  	<dependency>
      <groupId>org.apache.sparkgroupId>
      <artifactId>spark-core_2.12artifactId>
      <version>3.0.0version>
    dependency>
    
	<dependency>
      <groupId>org.apache.sparkgroupId>
      <artifactId>spark-sql_2.12artifactId>
      <version>3.0.0version>
    dependency>
  dependencies>
  
  <build>
	<plugins>
  	  <plugin>
    	<artifactId>maven-assembly-pluginartifactId>
    	<version>3.3.0version>
    	<configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependenciesdescriptorRef>
          descriptorRefs>
        <archive>
          <manifest>
            <mainClass>me.spark.app.playersStats.MainmainClass>
          manifest>
        archive>
        configuration>
        <executions>
      	  <execution>
        	<id>make-assemblyid> 
        	<phase>packagephase> 
        	<goals>
          	  <goal>singlegoal>
        	goals>
      	  execution>
        executions>
      plugin>
    plugins>
  build>
project>

几点说明:

  • 一旦在Eclipse中保存pom.xml文件,Maven就会自动开始进行依赖包安装和配置。安装过程中会使Eclipse IDE有些许卡顿,此时尽量停止操作来避免程序崩溃

  • 该项目所有的.java源文件的package我设置为me.spark.app.playersStats(其实可以自行选择,但最好和Maven项目属性保持一致)

  • Properties为项目的基本配置,里面的maven.compiler.sourcemaven.compiler.target为JDK版本设置,应该与你安装的JDK版本保持一致(注意这里指的是正式版本号的前缀,JDK 14应该设置14,而JDK8应该设置1.8)

  • Dependencies为项目的依赖包。maven-assembly-plugin用于编译,而spark-core_2.12spark-sql_2.12则代表用Scala 2.12编译的Spark Core和Spark SQL框架。如果需要使用Spark框架的其他部分(比如MLlib)或者其他框架,则需要在这里添加相应的程序包,其相应的dependency配置可在Maven Repository网站上找到

  • Build为项目的编译配置。这里使用maven-assembly-plugin在打包JAR过程中将依赖包也打进去,否则调用JAR包中依赖Spark框架的类会出现问题。

配置Run指令

可以通过右键Package Explorer中项目名字 -> Run As -> Maven Build…(注意选后面有三个点的)来添加Run指令。

我设置的一些Run指令

  • Name: playersStats-compile
    • Goals: clean compile assembly:single
  • Name: playersStats-exec
    • Goals: exec:java -e
    • Parameters (通过Add…添加)
      • Parameter Name: exec.mainClass
      • Value: me.spark.app.playersStats.Main

运行

在src/main/java中右键选择New -> Class并设置类名为Main,并在Main.java中的main函数中写好Spark测试程序,就可以通过先后通过compile和exec运行程序了。参考测试代码如下:

// package...
// import org.apache.spark....
// import ...

public static void main(String[] args) throws Exception {
    SparkSession spark = SparkSession
        .builder()
	.appName("Java Spark SQL basic example")
	.config("spark.master", "local")
	.getOrCreate();
		
    Dataset<Row> df = spark.read()
        .option("header", "true")
	.option("inferSchema", "true")
	.csv("data/players_stats_by_season_full_details.csv");
    df.printSchema();
    df.select("Player").show();
    df.select(col("Player"), col("GP")).show();
    df.filter(col("GP").gt(75)).show();
    
    spark.stop();
}

你可能感兴趣的:(spark,maven,ide,eclipse,java)