1 安装sbt
官方网站:http://www.scala-sbt.org/
解压下载包,把sbt/bin放到环境变量PATH下便可。
通常先添加环境变量SBT_HOME,再把SBT_HOME/bin添加到PATH中
假设把sbt-0.13.6安装到F:\sbt\中,设置如下环境变量:
添加到Path中:
找到一下目录
找到文件夹~/.sbt/0.13/plugins下面的plugins.sbt配置文件,如果没有相应文件夹和文件则创建。编辑该文件添加插件:
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")
在cmd中执行sbt即可。
2 创建scala工程
创建名为scala的文件夹,进入该文件夹如下图创建目录
在build.sbt中设置(有空行)
name := "spark"
version := "1.0"
scalaVersion := "2.10.6"
libraryDependencies += "org.apache.spark" % "spark-core_2.10" % "1.1.0"
在project/build.properties设置
sbt.version=0.13.6
在project/plugins.sbt中设置
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")
打开cmd,进入scala目录后,执行
sbt eclipse
在src/main/scala中创建test.scala
添加如下代码
import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.SparkContext._
object test{
def main(args:Array[String]) : Unit = {
println("hello")
if (args.length == 0) {
System.err.println("Usage bin/spark-submit [options] --class test /root/spark_2.10-1.0.jar <file1:URI>")
System.err.println("Usage bin/spark-submit [options] --class test /root/spark_2.10-1.0.jar hdfs://node2:8020/tmp/README.md")
System.exit(1);
}
println(args(0))
val conf = new SparkConf().setAppName("WordCount")
val sc = new SparkContext(conf)
val doc = sc.textFile(args(0))
println(doc)
doc.cache()
val words = doc.flatMap(_.split(" "))
val pairs = words.map( x=> (x,1))
val res = pairs.reduceByKey(_+_)
res.collect().foreach(println)
sc.stop()
}
}
3 打包提交到Spark上执行
进入scala目录,执行
sbt package
在target目录找到目标文件
上传到spark所在服务器
执行
spark-submit --class test --master local[2] /root/spark_2.10-1.0.jar hdfs://node2:8020/tmp/README.md
若项目依赖其他jar包,执行时添加--jar选项,具体可参考spark-submit 命令参数
例如下面命令依赖jedis.jar包
spark-submit --class test --master local[2] --jars /root/jedis-2.1.0.jar /root/spark_2.10-1.0.jar hdfs://node2:8020/tmp/README.md
4 参考文档