Windows下使用IntelliJ IDEA创建Maven工程

  本文介绍了Windows下使用IntelliJ IDEA创建Maven工程的步骤,需要首先搭建Spark环境,搭建过程见另一篇博客——Windows下使用IntelliJ IDEA搭建Spark环境。

1、 新建工程

  在欢迎界面点击Create New Project(或者主界面点击File,选择New - Project),在打开的页面左侧边栏中,选择Maven,然后在右侧的Project SDK一项中,查看是否是正确的JDK配置项(如果每一步严格按照上文中的步骤操作的话,正常来说这一栏会自动填充的,因为我们之前在之前已经配置过了全局的Project JDK了,如果这里没有正常显示JDK的话,可以点击右侧的New...按钮,然后指定JDK安装路径的根目录即可),然后点击Next,来到Maven项目最重要三个参数的设置页面,这三个参数分别为:GroupId, ArtifactIdVersion

Windows下使用IntelliJ IDEA创建Maven工程_第1张图片

  为了更好的解释这三个字段,用Maven标识符来进行讲解。

<groupId>com.hfutgroupId>
<artifactId>spark-testartifactId>
<version>1.0version>
  • GroupId,可以理解为用来标志你整个项目组的,或者你这些代码属于某一个完整的项目,比如上面的com.hfut就可以非常好的来标志Apache的Spark这个项目了。一般来说可以使用倒序的公司网址来作为GroupId,这可以类比为,沿袭了Java项目中使用倒序公司网址来作为Package名称的一个惯例。
  • ArtifactId,一般是用来在整个项目组来标志本项目的,相比GroupId的范围,其概念要稍微小一些,比如spark-test就非常好的表示出了本项目主要是一个Spark程序的测试,从而能够与其他各种组件或架构很好的区分开来。
  • Version,正如字面意思,就是本项目的迭代版本的信息,如上面的1.0。

2、 配置所需依赖包

  Spark在运行过程中需要条件很多依赖包,为了管理方便,我们通常使用Maven进行版本管理,这里以在pom.xml中添加spark-core为例进行说明:

<dependency>
    <groupId>org.apache.sparkgroupId>
    <artifactId>spark-core_2.11artifactId>
    <version>2.2.0version>
dependency>

注:本例artifactId中的版本号为scala版本号,version为spark版本号。

  我们可以方便的从在线maven库里找到spark-core包:

Windows下使用IntelliJ IDEA创建Maven工程_第2张图片

  以上使用了固定版本号,还可以让根据所安装的scala版本自己寻找对应的版本号,具体写法如下:

<dependency>
    <groupId>org.apache.sparkgroupId>
    <artifactId>spark-core_${scala.version}artifactId>
    <version>${spark.version}version>
dependency>

  至此,一个完整的Spark环境就可以使用了,此处给出一个pom文件代码:


<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.0modelVersion>

    <groupId>com.hfutgroupId>
    <artifactId>spark-testartifactId>
    <version>1.0version>

    <properties>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <spark.version>2.2.0spark.version>
        <scala.version>2.11scala.version>
        <hadoop.version>2.7.3hadoop.version>
    properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.sparkgroupId>
            <artifactId>spark-core_${scala.version}artifactId>
            <version>${spark.version}version>
        dependency>
        <dependency>
            <groupId>org.apache.sparkgroupId>
            <artifactId>spark-sql_${scala.version}artifactId>
            <version>${spark.version}version>
        dependency>
        <dependency>
            <groupId>org.apache.sparkgroupId>
            <artifactId>spark-hive_${scala.version}artifactId>
            <version>${spark.version}version>
        dependency>
        <dependency>
            <groupId>org.apache.sparkgroupId>
            <artifactId>spark-streaming_${scala.version}artifactId>
            <version>${spark.version}version>
        dependency>
        <dependency>
            <groupId>org.apache.hadoopgroupId>
            <artifactId>hadoop-clientartifactId>
            <version>2.6.0version>
        dependency>
        <dependency>
            <groupId>org.apache.sparkgroupId>
            <artifactId>spark-streaming-kafka_${scala.version}artifactId>
            <version>${spark.version}version>
        dependency>
        <dependency>
            <groupId>org.apache.sparkgroupId>
            <artifactId>spark-mllib_${scala.version}artifactId>
            <version>${spark.version}version>
        dependency>
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>5.1.39version>
        dependency>
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.12version>
        dependency>
    dependencies>

    <build>
        <sourceDirectory>src/main/scalasourceDirectory>
        <testSourceDirectory>src/test/scalatestSourceDirectory>
    build>
project>

  写完pom文件后,点击右下角提示中的Import Changes即可引入对应的依赖包。

Tips:

  • 这里面会有src/main/scalasrc/test/scala需要手动在对应项目目录下构建这两个文件夹路径,若不构建会报错(也可以直接在软件中设置)。
  • 如果依赖包导入速度慢,可以更改Maven源为阿里云。

3、 一个Wordcount程序

  接下来,给出一个Wordcount小程序的开发过程:
  如果已经设置了Scala SDK的全局变量,在src/main/scala文件夹下,右键新建Package,输入package的名字,我这里是com.test然后新建Scala class, 然后输入名字将类型改为object,如下图:

Windows下使用IntelliJ IDEA创建Maven工程_第3张图片

Tips:
  如果没有新建Scala class选项,可以通过以下方法解决:

  • 方法一:
      在Project Structure中选择Global Libraries,这时候会在中间一栏位置处出现Scala的SDK,在其上右键点击后选择Copy to Modules
  • 方法二:
      新建一个File文件,后缀改成 .scala ,点ok后文件中空白区会显示没有scala的SDK,这个时候你点击提示信息就可以添加本地的scala SDK(提前你的电脑上已经安装了scala,这个时候它会自动的去识别SDK),效果与方法一一样。

代码实例:

package com.test

import org.apache.spark.{SparkContext, SparkConf}

object WordCountLocal {
  def main(args: Array[String]) {
    /**
      * SparkContext 的初始化需要一个SparkConf对象
      * SparkConf包含了Spark集群的配置的各种参数
      */
    val conf = new SparkConf()
      .setMaster("local") //启动本地化计算
      .setAppName("testRdd") //设置本程序名称

    //Spark程序的编写都是从SparkContext开始的
    val sc = new SparkContext(conf)
    //以上的语句等价与val sc=new SparkContext("local","testRdd")
    val data = sc.textFile("e://hello.txt") //读取本地文件
    data.flatMap(_.split(" ")) //下划线是占位符,flatMap是对行操作的方法,对读入的数据进行分割
      .map((_, 1)) //将每一项转换为key-value,数据是key,value是1
      .reduceByKey(_ + _) //将具有相同key的项相加合并成一个
      .collect() //将分布式的RDD返回一个单机的scala array,在这个数组上运用scala的函数操作,并返回结果到驱动程序
      .foreach(println) //循环打印
  }
}

  如果能正确的打印出结果,说明spark示例运行成功,打包及提交方式将在下一篇博客中写到,点击查看。


参考链接:
http://blog.csdn.net/u013963380/article/details/71713582

你可能感兴趣的:(windows,idea,maven,Windows,大数据)