sbt介绍
sbt是一个代码编译工具,是scala界的mvn,可以编译scala,java等,需要java1.6以上。
sbt项目环境建立
sbt编译需要固定的目录格式,并且需要联网,sbt会将依赖的jar包下载到用户home的.ivy2下面,目录结构如下:
复制代码 以上建立目录如下:
复制代码
1、下载sbt通用平台压缩包:sbt-0.13.5.tgz
http://www.scala-sbt.org/download.html
2、建立目录,解压文件到所建立目录
$ sudo mkdir /usr/local/sbt$
$ sudo tar -zxvf sbt-0.13.5.tgz -C /usr/local
3、建立启动sbt的脚本文件
$ cd /usr/local/sbt/
$ vim sbt
/*在sbt文本文件中添加
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
java $SBT_OPTS -jar /usr/local/sbt/bin/sbt-launch.jar "$@"
4、修改sbt文件权限
$ chmod u+x sbt
5、配置PATH环境变量,保证在控制台中可以使用sbt命令
$ vim ~/.bashrc
/*在文件尾部添加如下代码后,保存退出*/
export PATH=/usr/local/sbt/:$PATH
6、/*使配置文件立刻生效*/
$ source ~/.bashrc
7、测试sbt是否安装成功
/*第一次执行时,会下载一些文件包,然后才能正常使用,要确保联网了,安装成功后显示如下*/
$ sbt sbt-version
[info] Set current project to sbt (in build file:/opt/scala/sbt/)
[info] 0.13.5
8、在PROJECT_HOME/src/main/scala/下面建立scala文件
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SimpleApp
{
def main(args: Array[String])
{
val logFile = "/usr/local/spark-1.5.2/README.md"
val conf = new SparkConf().setAppName("Simple Application")
val sc = new SparkContext(conf)
val logData = sc.textFile(logFile, 2).cache()
val numAs = logData.filter(line => line.contains("a")).count()
val numBs = logData.filter(line => line.contains("b")).count()
println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
}
}
9、在PROJECT_HOME/下编辑simple.sbt
name := "Simple Project"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.0.2"
resolvers += "Akka Repository" at "http://repo.akka.io/releases/"
10、编译打包
在PROJECT_HOME目录下运行:
sbt package
11、提交运行
SPARK_HOME/bin/spark-submit --class "SimpleApp" --master local[4] /PROJECT_HOME/target/scala-2.10/simple-project_2.10-1.0.jar