MAVEN+Scala创建Spark项目

Posted 肺儿的cs学习手记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MAVEN+Scala创建Spark项目相关的知识,希望对你有一定的参考价值。

MAVEN其实是一个项目构建和管理的工具,是可以方便的编译代码、进行依赖管理等。这两个搭配起来的主要的好处就是可以将项目过程规范化、自动化、高效。
 
在IDEA中创建MAVEN项目
 
安装MAVEN:
下载MAVEN的zip文件,解压,然后添加环境变量
在maven文件夹中创建一个repository文件夹
在conf中找到setting.xml文件,添加镜像和本地repository
 
   
   
 
< mirrors >
 
   
   
 
< mirror >
 
   
   
 
< id > alimaven </ id >
 
   
   
 
< mirrorOf > central </ mirrorOf >
 
   
   
 
< name > aliyun maven </ name >
 
   
   
 
< url > http://maven.aliyun.com/nexus/content/repositories/central/ </ url >
 
   
   
 
</ mirror >
 
   
   
 
< mirror >
 
   
   
 
< id > alimaven </ id >
 
   
   
 
< name > aliyun maven </ name >
 
   
   
 
< url > http://maven.aliyun.com/nexus/content/groups/public/ </r url >
 
   
   
 
< mirrorOf > central </ mirrorOf >
 
   
   
 
</ mirror >
 
   
   
 
< mirror >
 
   
   
 
< id > central </ id >
 
   
   
 
< name > Maven Repository Switchboard </ name >
 
   
   
 
< url > http://repo1.maven.org/maven2/ </ url >
 
   
   
 
< mirrorOf > central </ mirrorOf >
 
   
   
 
</ mirror >
 
   
   
 
< mirror >
 
   
   
 
< id > repo2 </ id >
 
   
   
 
< mirrorOf > central </ mirrorOf >
 
   
   
 
< name > Human Readable Name for this Mirror. </ name >
 
   
   
 
< url > http://repo2.maven.org/maven2/ </ url >
 
   
   
 
</ mirror >
 
   
   
 
< mirror >
 
   
   
 
< id > ibiblio </ id >
 
   
   
 
< mirrorOf > central </ mirrorOf >
 
   
   
 
< name > Human Readable Name for this Mirror. </ name >
 
   
   
 
< url > http://mirrors.ibiblio.org/pub/mirrors/maven2/ </ url >
 
   
   
 
</ mirror >
 
   
   
 
< mirror >
 
   
   
 
< id > jboss-public-repository-group </ id >
 
   
   
 
< mirrorOf > central </ mirrorOf >
 
   
   
 
< name > JBoss Public Repository Group </ name >
 
   
   
 
< url > http://repository.jboss.org/nexus/content/groups/public </ url >
 
   
   
 
</ mirror >
 
   
   
 
< mirror >
 
   
   
 
< id > google-maven-central </ id >
 
   
   
 
< name > Google Maven Central </ name >
 
   
   
 
< url > https://maven-central.storage.googleapis.com
 
   
   
 
</ url >
 
   
   
 
< mirrorOf > central </ mirrorOf >
 
   
   
 
</ mirror >
 
   
   
 
<!-- 中央仓库在中国的镜像 -->
 
   
   
 
< mirror >
 
   
   
 
< id > maven.net.cn </ id >
 
   
   
 
< name > oneof the central mirrors in china </ name >
 
   
   
 
< url > http://maven.net.cn/content/groups/public/ </ url >
 
   
   
 
< mirrorOf > central </ mirrorOf >
 
   
   
 
</ mirror >
 
   
   
 
</ mirrors >
 
如果这几个镜像不行就再多添加几个镜像
 
打开 crtl+alt+s IDEA全局工具的配置,搜索maven

三个设置为本地的Maven及配置,xml为conf里的xml
在runner里 的 Options 写: -Xms128m -Xmx512m -Duser.language=zh-Dfile.encoding=UTF-8
 
在左侧栏中的项目名称上右键菜单中点击Add Framework Support,添加scala框架
 


将以上三个文件夹删除, 在main文件夹中建立一个名为 scala 的文件夹,并右键点击 scala 文件夹,选择 Make Directory as,然后选择Sources Root ,这里主要意思是将 scala 文件夹标记为一个源文件的根目录
 
在已经标记好为源文件根目录的 scala 文件夹 上,右键选择 New,然后选择 Scala Class,随后设置好程序的名称,并且记得将其设置为一个 Object
 
然后将我们写好的.scala程序复制进去,记得添加Jsoup.jar
 
打开左侧栏pom.xml
Scala 要原则安装的Spark集群的scala的版本,这点很重要,如果版本不匹配会报错
java.lang.NoSuchMethodError:scala.runtime.ObjectRef.create(Ljava/lang/Object;)
<repositories>
<repository>
<id>aliyunmaven</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<properties>
<spark.version>2.4.5</spark.version>
<scala.version>2.11</scala.version>
</properties>
 
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
 
</dependencies>
 
<build>
<plugins>
 
<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>
 
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
 
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
 
</plugins>
</build>
 
打开项目配置-Aritifacts选择+号 jar – from modules 选择本项目
 
然后Build-buildAritifacts,把jar包拖到虚拟机里运行

大功告成!Hello Spark!

以上是关于MAVEN+Scala创建Spark项目的主要内容,如果未能解决你的问题,请参考以下文章

Spark集群搭建记录 | 云计算[CentOS7] | Scala Maven项目访问Spark实现单词计数

IntelliJ IDEA开发Spark的Maven项目Scala语言

用maven来创建scala和java项目代码环境(图文详解)(Intellij IDEA(Ultimate版本)Intellij IDEA(Community版本)和Scala IDEA for

编写Spark的WordCount程序并提交到集群运行[含scala和java两个版本]

IDEA下基于Maven的Java和Scala混合编程

eclipse安装scala插件及创建maven工程