目录
-
[1 创建sbt目录](#1 创建sbt目录)
-
[2 使用 sbt 编译 scala 独立应用](#2 使用 sbt 编译 scala 独立应用)
-
[3 编写 sbt 程序:](#3 编写 sbt 程序:)
-
[4 使用 sbt 打包 Scala 程序:](#4 使用 sbt 打包 Scala 程序:)
-
[5 运行 scala 程序:](#5 运行 scala 程序:)
通过网盘分享的文件:sbt-1.3.8.tgz
链接: https://pan.baidu.com/s/1mkHbdfgUInPKeSU7zWEyoQ 提取码: tgy6
--来自百度网盘超级会员v7的分享
1 创建sbt目录
mkdir /usr/local/soft/sbt
将压缩包移动到该目录下,然后解压缩,删除压缩包
// 将 sbt-launch.jar 拷贝到外层目录
cp sbt/bin/sbt-launch.jar .

// 新建 run.sh ,用于编译打包 scala 程序
vim run.sh
#!/bin/bash
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
java $SBT_OPTS -jar `dirname $0`/sbt-launch.jar "$@"

// 查看 sbt 版本信息,第一次执行命令会下载一些依赖
chmod +x run.sh
./run.sh sbtVersion
2 使用 sbt 编译 scala 独立应用
1、创建应用目录:

mkdir -p first_spark/src/main/scala/
2、编写 scala 应用:
vim first_spark/src/main/scala/SimpleApp.scala
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SimpleApp {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("Simple Application")
val sc = new SparkContext(conf)
// 过滤出大于 20 的元素
val rdd = sc.parallelize(List(30, 50, 7, 6, 1, 20), 2).filter(x => x > 20)
rdd.collect().foreach(println)
sc.stop()
}
}

3 编写 sbt 程序:


name := "Simple Project"
version := "1.0"
scalaVersion := "2.11.12"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.5"
注意:scala、spark-core 的版本可以通过 spark-shell 查看
4 使用 sbt 打包 Scala 程序:
// 编译,第一次编译需要下载依赖,会有点慢
/usr/local/soft/sbt/run.sh package
编译成功后,在当前目录下会生成两个目录:project、target

jar 包所在位置

5 运行 scala 程序:
spark-submit --class "SimpleApp" target/scala-2.11/simple-project_2.11-1.0.jar
