相关组件版本:
JDK1.8.0_171,hadoop-2.7.6,Spark-2.3.0,Scala-2.11.8,Maven-3.5.3,ideaIC-2018.1.4.exe,spark-2.3.0-bin-hadoop2.7
a. 下载JDK,jdk-8u171-windows-x64.exe,安装到目录:D:\setupedsoft\Java,并设置 JAVA_HOME 变量
http://www.oracle.com/technetwork/java/javase/downloads/index.html
b. 设置 Path 变量,添加 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
c. 设置 Classpath 添加:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
d. 分别使用java/javac来验证环境变量是否配置成功
注意:老老实实把安装路径变成没有空格的!!!!!!
路径上包含空格的,有以下2个解决办法:(但是在启动节点和关闭节点时会报错“C:\Program” 不是个命令)
1.用路径替代符(需要重启电脑) C:\PROGRA~1\Java\jdk1.8.0_171
2.用引号括起来 "C:\Program Files"\Java\jdk1.8.0_171
下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.6/
下载:hadoop-2.7.6.tar.gz 解压至安装目录D:\setupedsoft\hadoop-2.7.6
HADOOP_HOME=D:\setupedsoft\hadoop-2.7.6
Path=;%HADOOP_HOME%\bin
下载地址:https://pan.baidu.com/s/1_C4TALLBW9TbIrJMC4JKtA 密码: dc63
一个支持在windows运行hadoop的工具
用解压后的bin、etc目录覆盖hadoop的bin、etc目录(亲测这个工具适用于hadoop2.5和2.7,其他的尚且不知)
在/D:/datafile/hadoop-2.7.6目录新建workplace目录,进入workplace,新建子文件夹temp、data、name
链接:https://pan.baidu.com/s/1y178KxOUPbcZH_Efmvx1Kg 密码:qgez
终端运行hdfs namenode -format,出现类似INFO util.ExitUtil: Exiting with status0则说明没有错
D:\setupedsoft\hadoop-2.7.6\bin>hdfs namenode -format
sbin目录下,执行start-all.cmd
D:\setupedsoft\hadoop-2.7.6\sbin>start-all.cmd
http://localhost:50070/dfshealth.html#tab-overview
stop-all.cmd
下载地址: http://spark.apache.org/downloads.html
下载spark-2.3.0-bin-hadoop2.7.tgz,解压至安装目录 D:\setupedsoft\spark-2.3.0-bin-hadoop2.7
新建环境变量SPARK_HOME,值为spark安装目录
将%SPARK_HOME%\bin添加至环境变量path
终端输入spark-shell或pyspark或sparkR,能成功打开则安装成功
下载地址:https://www.scala-lang.org/download/2.11.8.html(2.12.6报错,改为安装2.11.8)
a.设置 SCALA_HOME
b.设置 Path 变量:添加 ;%SCALA_HOME%\bin
c.设置 Classpath 添加:.;%SCALA_HOME%\bin;
配置JDK和Scala SDK 菜单路径:Project Structure>>Platform Settings
SDKs,添加上述安装的jdk
Global Libraries,添加Scala SDK,选择上述安装的Scala,版本选择2.11,并将Scala SDK2.11添加到当前项目
下载地址:http://maven.apache.org/download.cgi,解压到目录:D:\setupedsoft\apache-maven-3.5.3
a.设置 MAVEN_HOME 变量,值为:D:\setupedsoft\apache-maven-3.5.3
b.设置 Path 变量:添加 ;%MAVEN_HOME%\bin;
查看MAVEN安装是否成功:mvn -v
下载地址:http://www.jetbrains.com/idea/download/#section=windows
选择开源版本64位
执行EXE文件安装
配置maven 菜单路径:File>>Setting>>Build,Execution,Deployment>>BuildTools>>Maven 设置maven安装路径
Scala插件安装 菜单路径:File>>Setting>>Plugins>>Browse Repositories 搜索Scala,安装,重启IntelliJ IDEA
欢迎界面>>Configure>>Project Defaults>>Project Structure>>SDKs
欢迎界面>>Configure>>Project Defaults>>Project Structure>>GlobalLibraries>>加号>>Scala SDK
新建maven项目,main中新建scala目录,并在File>>projectstructure>>modules中,将scala目录标记为sources
修改pom.xml文件,并修改设置为自动导入依赖File>>Settings>>Importing>>Import Maven projects automatically
链接:https://pan.baidu.com/s/1xmy7cPE_BkKNFv04G-perg 密码:rdas
依赖添加成功后,新建scala 的object 文件然后填写如下代码:
import org.apache.spark.{SparkConf, SparkContext} /** * * @author migu-orrin on 2018/5/3. */ object WordCount { def main(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") } }
运行成功后,可以讲代码打包成jar 包发送到远端或者本地的spark 集群上运行。打包有以下步骤
点击“File“然后选择“project Structure“
然后如图所示进行如下操作 ,在弹出的对话框中点击按钮,选择主类进行如下4步操作。
由于我们的jar包实在spark 上运行的,故可以删除其他不需要的依赖包
注意:outputdirectory 的路径。此处是你导出 jar 的路径。
执行 bulid 构建你的jar
jar 包导出以后就可以在spark上运行了。包导出路径是在project structure的output directory:D:\hanrworkspace\mytest\out\artifacts\mytest_jar
此时进入终端,进入到spark安装包的 bin 目录下。执行如下命令:
spark-submit--class SparkPi --master spark://spark1:7077/D:/hanrworkspace/mytest/out/artifacts/mytest_jar/mytest.jar
注:
SparkPi:是启动类的名字,如果有包命,要加包名,(例如 com.edu.SparkPi)
spark1:7077 :是你远端的spark 的地址,(spark1:7077为提交到本机测试)。
/D:/hanrworkspace/mytest/out/artifacts/mytest_jar/mytest.jar:是你jar 包的路径。
参考博客:
添加自己总结的部分,下面为借鉴博客原文地址:
https://blog.csdn.net/u011521890/article/details/78577582
https://my.oschina.net/orrin/blog/1812035
https://blog.csdn.net/huan_chen/article/details/78574835
https://blog.csdn.net/Gnd15732625435/article/details/81062381
https://blog.csdn.net/hambition/article/details/80769771?utm_source=copy