首先在安装环境前,最好确认各个版本之间的兼容性,避免出现不必要的错误而耽误时间!!!!!!
系统环境安装
1.JDK8+安装
a.设置 JAVA_HOME 变量
b.设置 Path 变量,添加 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
c.设置 Classpath 添加: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
2.Scala安装
下载地址:http://www.scala-lang.org/download/all.html
选择版本2.12.10
a.设置 SCALA_HOME 变量
b.设置 Path 变量:添加 ;%SCALA_HOME%\bin
c.设置 Classpath 添加:.;%SCALA_HOME%\bin;
3.Hadoop安装
下载地址:https://archive.apache.org/dist/hadoop/common/
选择版本:3.0.0
a.设置 HADOOP_HOME 变量
b.设置 Path 变量:添加 ;%HADOOP_HOME%\bin
安装参考:https://blog.csdn.net/songhaifengshuaige/article/details/79575308
最后完成后,最好吧bin目录下的hadoop.dll复制到C:\windows\system32\下。要不后续容易出错
4.Spark安装
下载地址:http://spark.apache.org/downloads.html
选择版本:3.0.0
a.设置 SPARK_HOME 变量
b.设置 Path 变量:添加 ;%SPARK_HOME%\bin
5. maven 安装
下载地址:http://maven.apache.org/download.cgi
下载版本:3.6.1
a.设置 MAVEN_HOME 变量
b.设置 Path 变量:添加 ;%MAVEN_HOME%\bin;
需要注意的是setting.xml中配置本地仓库的目录,
如果maven依赖导入失败的话参考:https://blog.csdn.net/u012702547/article/details/88071279
6. IntelliJ IDEA 安装
我使用的是2019.3破解版,破解教程可以去百度一下,很多!
IDEA环境安装
1.配置maven
菜单路径:File>>Setting>>Build,Execution,Deployment>>Build Tools>>Maven 设置maven安装路径
我的设置是这样的,供参考:
2.Scala插件安装
菜单路径:File>>Setting>>Plugins>>Browse Repositories 搜索Scala,安装对应版本的 Scala。
3.配置JDK和Scala SDK
菜单路径:Project Structure>>Platform Settings
SDKs,添加上述安装的jdk
Global Libraries,添加Scala SDK,如果没有System的版本让你选择,就点下面的Browse选择你解押的Scala目录即可。
添加spark的jars。点“+”选java,找到spark目录中的jars导入即可。
4.运行实例类 新建Create Scala Class,Name=WordCount,Kind=Object
package com.sparkstudy.wordcountimport org.apache.spark.{SparkConf, SparkContext}/** * *@authororrin on 2018/5/3. */object WordCount {
defmain(args: Array[String]){
/**
* SparkContext 的初始化需要一个SparkConf对象
* SparkConf包含了Spark集群的配置的各种参数
*/ val conf=new SparkConf()
.setMaster("local")//启动本地化计算 .setAppName("WordCount")//设置本程序名称 //Spark程序的编写都是从SparkContext开始的 val sc=new SparkContext(conf)
//以上的语句等价与val sc=new SparkContext("local","testRdd") val data=sc.textFile("E:/data/wordcount.txt")//读取本地文件 var result = data.flatMap(_.split(" "))//下划线是占位符,flatMap是对行操作的方法,对读入的数据进行分割 .map((_,1))//将每一项转换为key-value,数据是key,value是1 .reduceByKey(_+_)//将具有相同key的项相加合并成一个 result.collect()//将分布式的RDD返回一个单机的scala array,在这个数组上运用scala的函数操作,并返回结果到驱动程序 .foreach(println)//循环打印 result.saveAsTextFile("E:/data/wordcountres")
}
}
运行结果: