开发工具和软件版本信息
IDEA |
2019.2 |
JAVA |
1.8 |
Scala |
2.11.12 |
Spark |
2.4.3 |
Hadoop |
2.7.7 |
Windows |
Win10专业版64位 |
Centos |
7.5 |
spark,选择pre_build版本,也就是编译好的版本
http://mirror.bit.edu.cn/apache/spark/spark-2.4.3/spark-2.4.3-bin-hadoop2.7.tgz
Hadoop,注意下载和spark对应的版本
http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
Spark2.4.3支持的Scala版本为2.12,因此我们下载2.12.8版本
https://downloads.lightbend.com/scala/2.12.8/scala-2.12.8.msi
直接双击安装,选择安装在 D:\software目录下面,然后一直点击下一步直到结束
hadoop-2.7.7.tar.gz 和 spark-2.4.3-bin-hadoop2.7.tgz解压到E:\bigdata\
得到下面两个目录:
E:\bigdata\hadoop-2.7.7
E:\bigdata\spark-2.4.3-bin-hadoop2.7
1:配置SPARK_HOME,HADOOP_HOME,SCALA_HOME的环境变量
1)Scala配置到PATH变量中
在PATH变量中新增 :
%SCALA_HOME%\bin
%SCALA_HOME%\jre\bin
%HADOOP_HOME%\bin
%SPARK_HOME%\bin
执行spark-sell命令,如果出现下图所示,则成功
一般情况下,在Windows中启动spark-shell会报下面错误:
那么则需要把下面的压缩包里面的文件放到Hadoop的bin目录里面就没问题了:
压缩包见下面:
<
重新执行spark-shell
然后在通过:http://localhost:4040/jobs/ 可以进入到spark界面
下载安装IDEA,社区版本就够使用
IDEA官网
https://www.jetbrains.com/idea/
IDEA社区版本下载:
打开IDEA,然后找到 Configure -> Plugins
搜索Scala插件,然后点击install安装。安装完成后状态变为installed
安装完成,重启IDEA
选择project structure
然后设置每个项目的Java版本为1.8
然后为每个项目新增Scala的支持
1:点击 create a new job
选择maven项目,然后直接点击下一步
填写项目信息,直接next
选择项目路径,然后next,项目建立完毕
接下来要为项目建立Scala支持
第一步,右键点击项目,然后选择 Add Framework Support
第二步,勾选Scala,然后点击OK
然后再项目结构中可以看到有Scala的支持:
在main目录下面,和Java相同级别,建立一个目录名字叫做Scala目录
右键点击scala目录,选择mark directory as 选项,设置为source folder
在POM文件中加入依赖:
具体插入的内容为:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
接下来,等待maven把所有的依赖下载完成后,新建一个Scala类,执行这个类
代码如下:
packagecom.bd.test1
importorg.apache.spark.sql.SparkSession
object Test1{
Def main(args:Array[String]):Unit={
val spark = SparkSession.builder.appName("SimpleApplication").master("local[*]").getOrCreate()
val rdd1=spark.sparkContext.parallelize(List(1,2,3))
print(rdd1.reduce(_+_))
spark.stop()
}
}
然后直接执行,已经可以执行了:
注意:一定要注意的是:如果要把代码发布到集群上面的话,需要
1)把maven依赖的scope改为provided
2)代码中的master方法不要调用,因为我们在spark-submit的时候会指定master