1,使用IDEA软件进行开发.
在idea中新建scala project, File-->New-->Project.选择Scala-->Scala
2,在编辑窗口中完成WordCount程序的编写,完整程序如下:
object WordCount {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("Word Count")
val sc = new SparkContext(conf)
val textFile = sc.textFile("/usr/local/spark-1.4.0/README.md")
val wordCounts = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
val counts = wordCounts.collect()
for(count <- counts) {
println(count._1 + ":" + count._2)
}
}
}
3.本地调试及debug程序:
如上图所示,选择Main class,在VM options中设置参数 -Dspark.master=local表示以当前机器为master.
4,程序中结果在窗口中打印,如下
5,以spark-submit形式提交程序并运行
5.1,从idea打包导出可运行jar程序
“File”–> “Project Structure” –> “Artifact”,选择“+”–> “Jar” –> “From Modules with dependencies”,选择main函数,并在弹出框中选择输出jar位置,并选择“OK”。
点击ok后,build-->
Build Artifact,弹出如下窗口
选择Rebuild,在桌面上生成SparkTest.jar文件.
5.2,提交SparkTest.jar文件到Spark集群中并运行
本次将jar包从主机提交到虚拟机集群中
(1)master上启动spark,SPARK_HOME/sbin/start-all.sh.可在浏览器中通过:master:8080访问
(2)使用spark-submit命令远程提交jar包,更多spark-submit命令参数配置可访问
http://spark.apache.org/docs/latest/submitting-applications.html
进入本机的SPARK_HOME目录下,
命令:bin/spark-submit --class WordCount --master spark://master:7077 --executor-memory 4G --total-executor-cores 4 /home/file/SparkJob/SparkTest.jar 1000
任务提交后,
此时访问master:8080端口,可以看到正在运行的任务
待到任务运行完成,命令窗口中可以看到运行结果
此时再次访问master:8080,可以看到Completed Applications中有一个Word Count的任务已完成