intelliji idea 基于maven运行spark程序

时间:2021-06-02 09:22:33

第一次接触maven,经历了好多波折最后才运行陈功了一个小程序,先将尝试过程分享,希望对遇到相似问题的小伙伴有帮助。

首先配置好intliji idea的基本环境,然后开始。

依据网上的教程(这篇教程百度全都是)开始,根据maven模板创建程序,

intelliji idea 基于maven运行spark程序

创建一个程序,然后接着修改里边的scala版本,添加spark的信息


<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10 -->
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_2.10</artifactId>
      <version>1.6.1</version>
    </dependency>




然后自动下载,接下来写一段程序,就这一段好了

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


  def main(args: Array[String]){
  System.out.println("hello scala!")
    val conf= new SparkConf().setAppName("windows_spark").setMaster("local[4]").set("spark.testing.memory","2147480000")
    val spark =new SparkContext(conf)
    val data= spark.textFile("data.txt")
    val ss=data.flatMap(_.split("a")).map((_,1)).reduceByKey((_+_)).repartition(1)
    ss.foreach(println)
    spark.stop()

  }
}

数据文件data可以使用这一段代码,直接放在项目的根目录就好了。

到这里,我发现,并不能运行。

有一个小问题先交代一下,首先加载那些包是需要一点时间的,尤其是网速不快的情况下

还有就是模板里边有些东西是不能识别的,貌似是maven scala插件之类的,后来也不知道怎么就好了。

在尝试运行的时候,是会出错的,

运行Maven是报错:No goals have been specified for this build

http://blog.csdn.net/yiluoak_47/article/details/16940303

然后按照上边网页添加进去,

  1. pom.xml文件<build>标签后面加上<defaultGoal>compile</defaultGoal>即可  

,然后,运行这时候,可以运行完了,but,我就蒙圈了,每次运行完了就说build成功了,我的天啊,为什么不能运行,于是我右键运行,发现出现了坑爹的版本问题,

就是下面这个图

intelliji idea 基于maven运行spark程序

然后,我继续百度,找到了这篇文章,

用idea编译项目出现JUnit4 版本问题

http://wenda.chinahadoop.cn/question/2642(小象学院的问答区)

前边的好多复杂的东西我也没看太懂,最后一句我懂了,没有用那个模板,重新建了个maven项目,然后成功了。


于是我也跟着他学吧,创建了一个。


然后添加spark的版本信息,添加build中的这一段<defaultGoal>compile</defaultGoal>,然后,运行,这个时候竟然还有问题,说是找不到主类,我开始怀疑我在建文件的时候选择没有scala类可选,我就选了文件,生生的改成了scala,再加上这篇文章说的,http://*.com/questions/27871379/exception-in-thread-main-java-lang-classnotfoundexception 我就决定再建一个,因为这个时候我已经添加了scala的jdk,(原来我以为maven会帮我搞定,应该就是这样的,不过现在不是,嗯,你可以帮我回答一这个问题)

终于成功了

intelliji idea 基于maven运行spark程序

看我两个文件一样,ide还是认为不一样,创建的时候就决定了文件的类型

intelliji idea 基于maven运行spark程序

最后,给出pom的代码,虽然我不太理解,但是可以运行,先这样的

<?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>selfmaven</groupId>
    <artifactId>mavenXXXXX</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10 -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.10</artifactId>
        <version>1.6.1</version>
    </dependency>
    </dependencies>
    <build>
    <defaultGoal>compile</defaultGoal>


    </build>
</project>