准备工作:
此时在你的PC上,你的JDK应该已经安装配置好JDK1.8版本。
①首先官网下载IDEA(建议Ultimate版) https://www.jetbrains.com/idea/download/#section=windows
②从 http://idea.lanyus.com/ 获得注册码或其他各种方式破解(个人用学生版,未测试过这些网站)
③打开IDEA,安装sbt和scala插件,file-settings-Plugins直接搜scala和sbt安装即可。
④新建工程,选择scala->sbt;
选择适合的JDK和Scala版本;这里的版本一定要对应,JDK最好是1.8版,Scala最好不要是2.12.x以上,目前2.12及以上应该是到了spark2.4版本才支持(跟你要提交作业的spark集群的版本对应)。
到此建立工程完毕。
写程序并打包:
①编写scala程序,src->main->scala右键,new->scala class;
选择Kind为Object;
然后输入你的程序。
package com.hq import org.apache.spark.SparkConf import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ object wordcount { def main(args: Array[String]){ if (args.length < 1) { System.err.println("Usage:") System.exit(1) } val conf = new SparkConf() // sc是Spark Context,指的是“上下文”,也就是我们运行的环境,需要把conf当参数传进去; val sc = new SparkContext(conf) //通过sc获取一个(hdfs上的)文本文件,args(0)就是我们控制台上传入的参数,local运行的话就是传入本地一个文本的path val input = sc.textFile(args(0)) //下面就是wordcount具体的执行代码 val lines=input.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_) lines.saveAsTextFile(args(1)) sc.stop() } }
②设置build.sbt文件
name:="Wordcount"
version:="0.1"
scalaVersion:="2.11.0"
libraryDependencies+="org.apache.spark"%%"spark-core"%"2.3.0"
③打包,File->Project Structure->Artifacts,点“+”->JAR->From……;
选择module和mainclass,JAR files from libraries选择第二项(网上都让选第一项,然而选第一项我挂了);
勾选include in project build,点ok;
然后Build-Build Artifacts生成jar包,如果已有META-INF生成了,必须删除后再build。
至此打包完成。