文档下载地址:https://download.csdn.net/download/hambition/10492232
由于博文上传图片比较麻烦,图片又非常之多,没分的同学可直接看博文
win10上部署Hadoop非Cygwin、非虚拟机方式。安装目录为D:\setupedsoft。涉及相关组件版本:
win10 家庭装,64位,x86处理器
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 变量
b. 设置 Path 变量,添加 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
c. 设置 Classpath 添加: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
d. 最后在终端输入java -version,出现类似如下结果即可:
官网http://hadoop.apache.org/releases.html下载Hadoop2.7.6,解压至安装目录D:\setupedsoft\hadoop-2.7.6
a. 设置 HADOOP_HOME变量
b.设置 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
编辑D:\setupedsoft\hadoop-2.7.6\etc\hadoop\core-site.xml
|
编辑D:\setupedsoft\hadoop-2.7.6\etc\hadoop\mapred-site.xml
|
编辑D:\setupedsoft\hadoop-2.7.6\etc\hadoop\hdfs-site.xml
|
编辑D:\setupedsoft\hadoop-2.7.6\etc\hadoop\yarn-site.xml
|
编辑D:\setupedsoft\hadoop-2.7.6\etc\hadoop\hadoop-env.cmd
找到set JAVA_HOME=%JAVA_HOME%,将%JAVA_HOME%替换为D:\setupedsoft\Java\jdk1.8.0_171
终端运行hdfs namenode -format,出现类似INFO util.ExitUtil: Exiting with status0则说明没有错
D:\setupedsoft\hadoop-2.7.6\bin>hdfs namenode -format
切换到hadoop的sbin目录,执行start-all.cmd
D:\setupedsoft\hadoop-2.7.6\sbin>start-all.cmd
http://localhost:8088/cluster
http://localhost:50070/dfshealth.html#tab-overview
最后我们可以使用“stop-all”停止Hadoop
官网下载Spark2.3.0 http://spark.apache.org/downloads.html,解压至安装目录 D:\setupedsoft\spark-2.3.0-bin-hadoop2.7
新建环境变量SPARK_HOME,值为spark安装目录
将%SPARK_HOME%\bin添加至环境变量path
终端输入spark-shell或pyspark或sparkR,能成功打开则安装成功
http://localhost:4040
2.12.5不行。改为12.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,安装 Scala(Version:2018.1.9),SBT(Version: 1.8.0),SBT Executor(Version: 1.2.1)
首先在欢迎界面点击Configure,选择plugins如下图所示:
因为的安装过了所以事uninstall 没有安装的话是 install ,安装成功后,点击OK退出。
注意:插件安装完了之后,记得重启一下IntelliJ IDEA使得插件能够生效。
为了不用每次都去配置JDK,这里先进行一次全局配置。首先在欢迎界面点击Configure,然后在Project Defaults(已创建的项目在file菜单)的下拉菜单中选择ProjectStructure,在打开的Default Project Structure界面的左侧边栏选择Project,在右侧打开的页面中创建一个新的JDK选项(一定要本机已经安装过JDK了),如下图所示步骤在下拉菜单中点击JDK后,在打开的对话框中选择你所安装JDK的位置,注意是JDK安装的根目录,就是JAVA_HOME中设置的目录。
在欢迎页面的右下角点击Configure,然后在Project Defaults的下拉菜单中选择Project Structure,在打开的页面左侧选择GlobalLibraries,然后在中间一栏中有一个绿色的加号标志 +,点击后在下拉菜单中选择 Scala SDK
然后在打开的对话框中选择系统本身所安装的Scala(即System对应的版本),点击OK确定,这时候会在中间一栏位置处出现Scala的SDK,在其上右键点击后选择Copy to Project Libraries…,这个操作是为了将Scala SDK添加到项目的默认Library中去。整个流程如下面的动图所示。
在欢迎界面点击Create NewProject,在打开的页面左侧边栏中,选择Maven,然后在右侧的Project SDK一项中,查看是否是正确的JDK配置项正常来说这一栏会自动填充的,因为我们之前在前面章节中已经配置过了全局的Project JDK了,如果这里没有正常显示JDK的话,可以点击右侧的New…按钮,然后指定JDK安装路径的根目录即可),然后点击Next,来到Maven项目最重要三个参数的设置页面,这三个参数分别为:GroupId,ArtifactId和Version. 步骤如下图所示:
GroupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。如:com.alibaba
ArtifactId就是项目的唯一的标识符,一般是项目名。比如:dubbo
Version为版本号,如:v1.0.0
此时已成功创建一个项目,但无法创建scala类。只有java class可选。
在main目录下创建一个scala的目录
此时scala目录既不可创建java class,也不可以创建scala class文件。
此时需要将Scala的框架添加到这个项目中,方法是在左侧栏中的项目名称上右键菜单中点击Add Framework Support…,然后在打开的对话框左侧边栏中,勾选Scala前面的复选框,然后点击确定即可(前提是上文中所述步骤都已正确走通,否则你很有可能看不到Scala这个选项的)
此时已可在项目中看到增加了scala的引用包
在file-projectstructure-modules中,将scala目录标记为sources
在已经标记好为源文件根目录的 scala 文件夹上,右键选择 New,然后选择 Scala Class,随后设置好程序的名称,并且记得将其设置为一个 Object(类似于Java中含有静态成员的静态类),正常的话,将会打开这个 Object 代码界面,并且可以看到IntelliJ IDEA自动添加了一些最基本的信息;
在创建的 Object 中输入如下语句:
defmain(args: Array[String]):Unit = {
println(
"Hello World!")
}
在程序界面的任意位置,右键单击后选择
Run '
你的程序名称
'
,静待程序的编译和运行,然后在下方自动打开的窗口中,你就可以看到振奋人心的
Hello World!
了
此时你已经可以成功的运行一个Scala 项目了。想要运行在spark 上则还需要导入相关依赖。打开pom.xml文件添加如下依赖。
注意:是添加如下依赖;spark 和Scala的版本是对应的。
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"> |
导入依赖以后记得点击,这个引入jar 包哦
依赖添加成功后,新建scala 的object 文件然后填写如下代码,本文以运行一个pi作示例。
import scala.math.random import org.apache.spark._ object SparkPi { def main(args: Array[String]) { val conf = new SparkConf().setAppName("Spark Pi").setMaster("local") val spark = new SparkContext(conf) val slices = if (args.length > 0) args(0).toInt else 2 val n = math.min(100000L * slices, Int.MaxValue).toInt // avoid overflow val count = spark.parallelize(1 until n, slices).map { i => val x = random * 2 - 1 val y = random * 2 - 1 if (x * x + y * y < 1) 1 else 0 }.reduce(_ + _) println("Pi is roughly " + 4.0 * count / n) spark.stop() } } |
代码编写好以后,右键 run ‘SparkPi’ 运行。
运行成功后,可以讲代码打包成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://my.oschina.net/orrin/blog/1812035