相关组件版本:
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
1.1 JDK1.8.0_171
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
1.2 hadoop-2.7.6
1.2.1 下载并解压
下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.6/
下载:hadoop-2.7.6.tar.gz 解压至安装目录D:\setupedsoft\hadoop-2.7.6
1.2.2 设置环境变量
HADOOP_HOME=D:\setupedsoft\hadoop-2.7.6
Path=;%HADOOP_HOME%\bin
1.2.3 支持windows运行
下载地址:https://pan.baidu.com/s/1_C4TALLBW9TbIrJMC4JKtA 密码: dc63
一个支持在windows运行hadoop的工具
用解压后的bin、etc目录覆盖hadoop的bin、etc目录(亲测这个工具适用于hadoop2.5和2.7,其他的尚且不知)
1.2.4 创建HADOOP数据存储目录
在/D:/datafile/hadoop-2.7.6目录新建workplace目录,进入workplace,新建子文件夹temp、data、name
1.2.5 修改hadoop配置文件
链接:https://pan.baidu.com/s/1y178KxOUPbcZH_Efmvx1Kg 密码:qgez
1.2.6 格式化命名节点
终端运行hdfs namenode -format,出现类似INFO util.ExitUtil: Exiting with status0则说明没有错
D:\setupedsoft\hadoop-2.7.6\bin>hdfs namenode -format
1.2.7 启动hadoop
sbin目录下,执行start-all.cmd
D:\setupedsoft\hadoop-2.7.6\sbin>start-all.cmd
1.2.8 web ui界面查看
http://localhost:50070/dfshealth.html#tab-overview
1.2.9 停止所有节点
stop-all.cmd
1.3Spark-2.3.0
1.3.1 下载并解压
下载地址: http://spark.apache.org/downloads.html
下载spark-2.3.0-bin-hadoop2.7.tgz,解压至安装目录 D:\setupedsoft\spark-2.3.0-bin-hadoop2.7
1.3.2 新建环境变量SPARK_HOME
新建环境变量SPARK_HOME,值为spark安装目录
将%SPARK_HOME%\bin添加至环境变量path
1.3.3 运行SPARK
终端输入spark-shell或pyspark或sparkR,能成功打开则安装成功
1.3.4 界面查看
1.4 Scala-2.11.8
下载地址: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添加到当前项目
1.5 Maven-3.5.3
下载地址: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
1.6 IntelliJIDEA 安装
下载地址:http://www.jetbrains.com/idea/download/#section=windows
选择开源版本64位
1.7 IDEA环境安装
1.7.1 安装idea
执行EXE文件安装
1.7.2 修改maven配置
配置maven 菜单路径:File>>Setting>>Build,Execution,Deployment>>BuildTools>>Maven 设置maven安装路径
1.7.3 Scala插件安装
Scala插件安装 菜单路径:File>>Setting>>Plugins>>Browse Repositories 搜索Scala,安装,重启IntelliJ IDEA
1.7.4 全局JDK和Library的设置
欢迎界面>>Configure>>Project Defaults>>Project Structure>>SDKs
1.7.5 配置全局的Scala SDK
欢迎界面>>Configure>>Project Defaults>>Project Structure>>GlobalLibraries>>加号>>Scala SDK
1.7.6 新建maven项目
新建maven项目,main中新建scala目录,并在File>>projectstructure>>modules中,将scala目录标记为sources
1.7.7 导入spark依赖
修改pom.xml文件,并修改设置为自动导入依赖File>>Settings>>Importing>>Import Maven projects automatically
链接:https://pan.baidu.com/s/1xmy7cPE_BkKNFv04G-perg 密码:rdas
1.7.8编写sprak代码
依赖添加成功后,新建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")
}
}
1.7.9打包运行
运行成功后,可以讲代码打包成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.****.net/u011521890/article/details/78577582
https://my.oschina.net/orrin/blog/1812035
https://blog.****.net/huan_chen/article/details/78574835
https://blog.****.net/Gnd15732625435/article/details/81062381
https://blog.****.net/hambition/article/details/80769771?utm_source=copy