IDEA下载安装:
新建scala项目:
file--->new--->project scala-->sbt 自动下载导入需要的jar包
file--->project Structure
libraries:引入spark下的jar包
右击scala,新建scala class ,选择 object
wordcount scala代码:
import org.apache.spark._
object Hello {
def main(args: Array[String]): Unit = {
println("my first scala app")
val conf=new SparkConf().setAppName("wordcount")
val sc=new SparkContext(conf)
val input=sc.textFile("spark/hellospark.txt")
val lines=input.flatMap(line =>line.split(" "))
val count=lines.map(word =>(word,1)).reduceByKey{case (x,y) =>x+y}
val output=count.saveAsTextFile("spark/hellosparkRes")
}
}
注:程序中的输入输出路径是针对hdfs上的路径,不是本地路径
写好后打包成jar
file--->project Structure--->Artifacts 点+,选择项目,导出
注:选择上边的只打包目标程序的jar,生成一个jar文件
选择下边的会把引用的所有jar包都重新生成,时间长,没必要,所以选择上面的
build--->build Artifacts--->build 等待完成
任务提交到集群运行:
spark-submit --master spark://hserver1:7077 --class Hello /root/spark/text2.jar
问题:
spark-submit 报错 Initial job has not accepted any resources:
spark-submit 后面加--executor-memory 512m就运行正常了(默认是1024m)(虚拟机当时配置的时候默认是1024m的内存,所以会出现内存空间不足)
运行完以后生成的文件:
生成part-00000和part-00001两个文件:
成功运行!