Windows下配置IDEA的Spark的开发环境
-
下载Spark-hadoop的文件包,spark-2.4.5-bin-hadoop2.7,官网进行下载http://spark.apache.org/downloads.html
-
IDEA下载Scala语言的开发插件,进行安装重启;
-
下载scala的包并进行安装,https://www.scala-lang.org/download/all.html,这个网页可以下载所有scala版本
-
idea创建普通的scala项目(个人使用的是JAVA的maven项目,然后创建子项目为scala项目),创建完子模块项目之后,将spark-2.4.5-bin-hadoop2.7里面的lib包全部加载到项目中
-
下载hadoop的二进制包,https://archive.apache.org/dist/hadoop/common/ ,这个网址下可以下载各个版本的hadoop的包。ps:可以下载apache旗下所有的包
-
下载完之后配置HADOOP HOME的环境变量
-
此时需要下载hadoop的windows版本的插件,winutils.exe和hadoop.dll两个文件件,这两个文件是别人在windows下编译hadoop相应版本后产生的,我就不编译了,直接在网上搜索下载相应版本的插件,一般都能下载到。winutils.exe放置到Hadoop的bin目录下,hadoop.dll放置到C:\Windows\System32目录下,切记:hadoop.dll一定不要放到hadoop的bin目录下,会报错。
-
安装完成。开始写Word Count吧
-
WordCount示例
import java.io.File
import oracle.net.aso.f
import org.apache.log4j.{Level, Logger}
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
//删除目录和文件
def dirDel(path: File) {
if (!path.exists())
return
else if (path.isFile()) {
path.delete()
println(path + ": 文件被删除")
return
}
val file: Array[File] = path.listFiles()
for (d <- file) {
dirDel(d)
}
path.delete()
println(path + ": 目录被删除")
}
def main(args: Array[String]): Unit = {
Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
//1.创建SparkConf并设置App名称
val sparkConf: SparkConf = new SparkConf().setAppName("WC").setMaster("local[*]")
//2.创建SparkContext,
// 该对象是提交Spark App的入口
val sc = new SparkContext(sparkConf)
//3.使用sc创建RDD并执行相应的transformation和action
// sc.textFile(args(0)).flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_, 1).sortBy(_._2, false).saveAsTextFile(args(1))
//读取文件
val line: RDD[String] = sc.textFile("D:/develop/ideaworkspace/asps/asps-spark/src/main/resources/words.txt")
//分割单词
val word: RDD[String] = line.flatMap(_.split(" "))
word.collect().foreach(println)
//将单词形成二元组
val wordAndOne: RDD[(String, Int)] = word.map((_, 1))
//统计单词总数
val wordAndCount: RDD[(String, Int)] = wordAndOne.reduceByKey(_ + _)
wordAndCount.collect().foreach(println)
//删除目标目录
val targetDir = new File("D:/develop/ideaworkspace/asps/asps-spark/src/main/resources/word10")
dirDel(targetDir)
// 写入文件
wordAndCount.saveAsTextFile("D:/develop/ideaworkspace/asps/asps-spark/src/main/resources/word10")
//4.关闭连接
sc.stop()
}
}
参考:https://www.bilibili.com/video/av16208774?from=search&seid=7975332398783130813
https://www.cnblogs.com/lovegmail/p/6053945.html