Win10 Hadoop2.7.1+Spark2.2.0+Scala2.11.11 环境搭建与测试
一、文件准备
1.apache-maven-3.2.5.zip
说明:用于构建Maven项目
链接:https://pan.baidu.com/s/1t3o3d-20dC7rUrV3fQSPPA
bdvy
2.spark-2.2.0-bin-hadoop2.7.tgz
说明:本文主角
链接:https://pan.baidu.com/s/1liGb1qg9pWrDPpbvGJNuWQ
orvb
3.scala-2.11.11.msi
说明:Spark常用编写语言
链接:https://pan.baidu.com/s/1Dz8AORWxDqyQaozyQcOvgg
ck5p
4.hadoop-2.7.1.rar
说明:Spark资源管理可以采用Mesos或者Yarn,这里选用Hadoop-Yarn
链接:https://pan.baidu.com/s/1aFwxor_f51Rleka9KLL6cQ
nn1c
5.hadooponwindows-master.zip
说明:Hadoop对Windows不是很友好需要修改写文件
链接:https://pan.baidu.com/s/1Av5OQXdmn420xaqQaZo5zg
ecp3
6.总说明:网上的确有很多最新版本的Hadoop、Spark啊的安装,还有勇士开荒成功发帖分享。不过信我,别装最新的,第一最新的官方没维护多久,大家也都没用多久,出了什么Bug问都没处问,当然你有精力EMail官方我不反对。其次,现在企业里用的也普遍是旧的,因为这个东西升级一次基本就是整个服务器升级,普遍企业还在用稳定的1.6的Hadoop,所以不急学新的。
二、安装搭建
1.安装须知:
1)请在非C盘新建一个文件夹(记作‘FolderNoSpace’),文件夹名字一定要 英文无空格!英文无空格!英文无空格!别问为什么,问就是Windows是个****。
2)文件下载后,需要解压一定要选择 “解压到XXX”尽量不要用“解压文件...”
2.Java安装配置测试。
1)如我刚才所说,Java(JDK)也要安装在这个没有空格的英文文件夹下,如果你已经装到别的地方了,别担心,很简单删了重装就好了。
2)具体安装配置测试我就不赘述了,想必都安腻了吧
3.Hadoop安装
1)将hadoop-2.7.1.rar拷贝至FolderNoSpace下解压
2)进入hadoop-2.7.1,新建文件夹“warehouse”,再进入warehouse新建文件夹“temp”、“name”、“data”,最终目录结构
hadoop-2.7.1---|hadoop-2.7.1---|bin
| |etc
| |... ...
|warehouse---|data
|name
|temp
3)解压hadooponwindows-master.zip,拷贝其中的bin、etc目录覆盖hadoop-2.7.1中的bin、etc目录
4.Hadoop配置
1)修改环境变量,在系统变量中新建“HADOOP_HOME”值为内层 hadoop-2.7.1的路径(下面是bin);在Path中添加 %HADOOP_HOME%\bin
2)进入hadoop-2.7.1\hadoop-2.7.1\etc\hadoop修改一以下文件,没有的property添加上,value对应自己的改一下,注意路径前边的‘/’别忘了
core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/‘上边temp目录的路径’</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/‘上边name目录的路径’</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://localhost:9001</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/‘上边data目录的路径’</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/‘上边warehouse目录的路径’/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/‘上边warehouse目录的路径’/datanode</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
hadoop-env.cmd 找到set JAVA_HOME
set JAVA_HOME=‘java(jdk)路径’
3)初始化(格式化)namenode,控制台,进入“hadoop-2.7.6\bin”路径下输入“hdfs namenode -format”出来一大堆最后
5.Hadoop测试
1)进入“hadoop-2.7.6\sbin”路径下输入“start-all”,弹出来的任何窗口都不要关闭!!弹出来的任何窗口都不要关闭!!弹出来的任何窗口都不要关闭!!
2)打开浏览器查看
3)找到输入“start-all”的窗口,输入“stop-all”关闭
6.Spark安装配置与测试
1)将spark-2.2.0-bin-hadoop2.7.tgz拷贝至FolderNoSpace下解压
2)系统变量中添加“SPARK_HOME”值为内层spark-2.2.0-bin-hadoop2.7的路径,Path中添加“%SPARK_HOME%\bin”
3)控制台输入“spark-shell”
7.Scala 安装与测试
1)运行scala-2.11.11.msi,注意选择安装位置,你懂的
2)控制台输入“scala”
8.Maven安装配置与测试
1)apache-maven-3.2.5.zip拷贝至FolderNoSpace下解压
2)添加系统变量“MAVEN_HOME”值为内层apache-maven-3.2.5路径,Path里添加%MAVEN_HOME%\bin
3)控制台输入“mvn -v”
三、创建Spark项目
1.IDEA预配置环境,在欢迎界面(如果不是就File >> Close Project)
1)Maven,依次选择Configure >> Setting >> Build,Execution,Deployment >> BuildTools >> Maven,并配置路径
2)Scala支持插件安装,Configure >> Plugins >> Browse Repositories 搜索Scala,安装
3)JDK与SDK配置,Configure >> Project Defaults >> Project Structure 在 Platform Setting 里选择SDKs >> 加号 >> JDK >> 选择JAVA_HOME。在Global Libraries >> 加号 >> Scala SDK >> 选择Location 为 System的
2.新建Maven项目
1)Create New Project >> Maven >> 输入GroupId(开发者)和ArtifactId(项目名) >> 选择路径 >> Finish
2)右下角选择“Enable ... ”
3)右键单击项目目录的项目名,Add Framework Support,勾选Scala
4)(可选)右键单击项目目录的‘java’>> Refactor >> Rename >> 改为‘scala’
5)新建 Scala Class “Test”(注意选择Kind为Object),输入
Def main(args: Array[String]):Unit = {
println("Hello World!")
}
右键 >> Run ,搞定 Scala 的 hallow world
3.导入Spark依赖
1)打开pom.xml 添加properties 和 dependencies
参考文件链接:https://pan.baidu.com/s/1DmiEEmvQogAA0xhb0_kkKA
5byn
2)导入Jars,File >> Project Structure >> Libraries >> 加号 >> Java >> 选择“spark-2.2.0-bin-hadoop2.7/jars”
4.Spark开发测试
1)新建 Scala Class “Pi”(注意选择Kind为Object),输入
import scala.math.random
import org.apache.spark._
object Pi {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("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()
}
}
2)右键 >> Run
搞定
四、打包与任务提交测试
1.File >> Project Structure >>Artifacts >> 加号 >> JAR >> from...
2.Main Class 选择 “Pi”,OK
3.因为扔到Spark上跑,所以删除不必要依赖,剩下有用的
4.Build >> Build Artifacts >> Build
5.在out/artifacts/Spark_jar下收获jar包
6.控制台进入这个jar包的路径,输入
spark-submit --class Pi --master spark://localhost:7077/ Spark.jar
7.结果
五、补充
1.本文并没有提到:
1)没有详细介绍Spark的配置【二.6】
2)采用Maven而不是常用的SBT框架【三.2】
3)没有解释Spark提交任务参数【四.6】
2.有问题或纠错欢迎大家评论区交流