本文详细阐述如何搭建Spark集群,并分别使用Maven和SBT编译部署Spark,最后在CentOS中安装IDEA进行开发。
CentOS 7
JDK:1.8
Spark:2.0.0、2.2.0
Scala:2.11.8
Hadoop: 2.7
Maven:3.3.9
以下所有步骤均亲自完成并详细截图!(本文为原创,转载请标明本文地址,谢谢!)
本文承接上文:Spark集群环境搭建+Maven、SBT编译部署+IDEA开发(一)
一在CentOS中部署IDEA
下载:https://www.jetbrains.com/idea/download/#section=linux
[spark@master ~]$ mv /home/spark/Downloads/ideaIC-2017.3.4.tar.gz /spark/soft/
[spark@master ~]$ cd /spark/soft/
[spark@master soft]$ tar -zxf ideaIC-2017.3.4.tar.gz
启动IDEA
[spark@master soft]$ cd idea-IC-173.4548.28/
[spark@master idea-IC-173.4548.28]$ ./bin/idea.sh
ok-接受协议-ok-选择皮肤等配置-进入
选择左边第二个scala,我第一次就选错了o(╥﹏╥)o
完成后重启
二开发程序
添加jar()
添加java Library:选择$SPARK_HOME/jar
/spark/work/mvn1/spark-2.0.0-bin-dev/jars
创建目录
src/main/scala
结果可能是
也可能是
创建WordCount.scala
输入WordCount,选择Object
得到
写入程序代码
package main.scala
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("WordCount")
val sc = new SparkContext(conf)
val rdd = sc.textFile(args(0))
val wordCount = rdd.flatMap(_.split(" ")).map(x=>(x,1)).reduceByKey(_+_)
val wordSort = wordCount.map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1))
wordSort.saveAsTextFile(args(1))
sc.stop()
}
}
可以看出来这段代码是单词计数的,接下来要配置一下被统计文件的路径
Run-Edit Configuration
填写输入和输出的路径,空格分割
file:///spark/work/mvn1/spark-2.0.0-bin-dev/README.md file:///home/spark/IdeaProjects/firsttest/src/main/scala
接下来运行方式多样
1直接运行
Run-Run...
选择运行WordCount
2打包运行
Build-Build Artifacts...
Build后,将打包好的文件移到Spark目录下
未完待续。。。