步骤一:安装IDEA
1.下载安装包
Jetbrain官网下载地址
我选的是windows的.exe安装包
2.安装
双击ideaIU-2018.1.8.exe安装包
一路next,最后点击install
3.运行
激活方式可自行百度或google
步骤二:IDEA中创建scala项目
1.下载scala插件
点击Scala下面的install,其他选项可选
2.创建scala项目
左边选择scala,右边选择sbt
选择项目文件存放目录,JDK安装路径以及sbt和Scala版本(默认即可)
IDEA会创建你指定的项目目录(如果之前不存在的话)
sbt管理的scala项目文件结构如下图:
步骤三:在本地安装sbt
1.下载安装包sbt-1.3.4.zip
sbt官网下载地址
版本没有要求,我选的是最新版sbt-1.3.4.zip,将其解压至D:/sbt
2.配置sbt的阿里云镜像加速源
这步主要是国内网络从maven仓库下载jar包速度太慢
在D:/sbt/conf目录下新建一个repository.properties配置文件,内容如下
[repositories]
local
aliyun-nexus: http://maven.aliyun.com/nexus/content/groups/public/
ibiblio-maven: http://maven.ibiblio.org/maven2/
typesafe-ivy: https://dl.bintray.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
uk-repository: http://uk.maven.org/maven2/
jboss-repository: http://repository.jboss.org/nexus/content/groups/public/
typesafe: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
sonatype-oss-releases
maven-central
sonatype-oss-snapshots
步骤三:添加spark依赖
- 在learning-spark-scala项目的build.sbt中添加依赖
版本号可参考:https://mvnrepository.com/artifact/org.apache.spark/spark-core
见上图最下方的语句。
#项目名称
name := "learning-spark-scala"
version := "0.1"
#scala版本
scalaVersion := "2.12.1"
#添加spark依赖,即下载spark-core包
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.3"
保存build.sbt即可,IDEA会自动导入spark-core的2.4.3版本jar包
2.修改sbtconfig.txt
-Xmx2048M
-XX:MaxPermSize=512m
-XX:ReservedCodeCacheSize=256m
-Dsbt.log.format=true
-Dsbt.global.base=D:/sbt/.sbt
-Dsbt.boot.directory=D:/sbt/.sbt/boot/
-Dsbt.ivy.home=D:/sbt/.ivy2
-Dsbt.repository.config=D:/sbt/conf/repository.properties
3.设置项目的sbt工具
点击File->settings->Build,Execution,Deployment->sbt
VM parameters的内容为D:/conf/sbtconfig.txt的所有内容
点击apply应用
步骤四:实现wordCount.scala程序
在src/main/scala/目录下创建wordCount.scala,选择object
新建一个D:/scalatest.txt测试文档,输入主程序代码如下:
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object WorldCount {
def main(args: Array[String]): Unit = {
new SparkContext(new SparkConf().setAppName("WC").setMaster("local")).textFile("D:/scalatest.txt").flatMap(line=>{line.split(" ")}).map(c=>(new Tuple2(c,1))).reduceByKey((v1:Int,V2:Int) =>(v1+V2)).foreach(tp=>(println(tp)))
}
}
运行结果如下:
至此,在IDEA编辑器中,利用sbt管理scala项目实现spark的初步框架搭建成功!