本文使用 Zhihu On VSCode 创作并发布
Spark 是一个基于分布式文件系统的计算框架,和MapReduce处于同等的地位,其下是分布式文件系统HDFS、Yarn、Mesos等资源管理调度系统。和MapReduce相比,其主要的优势是基于内存进行计算,将计算中用到的变量、中间文件等尽量存储到计算机内存中,而MapReduce是将其存储到磁盘上。因此Spark 会比MapReduce快。 随着互联网的发展,现在大家逐渐以Spark作为计算框架,来开发大数据应用。生产环境下,我们一般是基于Centos/Ubuntu等Linux发行版,来搭建环境。在Windows下,我们可以搭建单机环境,来进行开发验证。
1. JDK、Scala环境搭建
Scala 是在java基础上,构建的语言,其优势是函数式编程。而Hadoop 是使用Scala 进行开发的。所以我们必须先搭建这两个的开发环境。
JDK
下载、安装
首先,去Oracle 官方下载jdk windows的版本,其网址如下: 下载地址配置环境变量
新建 JAVA_HOME 变量,并在Path 中加入 %JAVA_HOME%jrebin 和 %JAVA_HOME%binImage Image
Scala
- 下载、安装scal 下载地址
Image - 验证scala 是否安装好,打开cmd命令,输入scala -version 命令。
Image
2. Spark 环境搭建
Spark的安装主要是下载和配置环境变量两部分。
- 下载
Spark提供了下载链接,可以在上选择合适的版本进行下载。 https://spark.apache.org/downloads.html - 解压
将下载后的文件,解压到合适的地方,选择一个磁盘空间较大的地方 - 配置环境变量
Image - spark 提供了spark-shell作为交互式编辑器,用户可以在spark-sheel中进行交互式编辑。
Image
3. Hadoop 单节点环境搭建
Hadoop 的版本必须和Spark的版本相互适应。因此,必须下载合适的版本。 https://hadoop.apache.org/releases.html 同时,在window系统上搭建hadoop 环境时,必须进行相应的处理。
- 下载对应的hadoop 版本
- 解压至合适的地方
- 下载winutils,该文件为hadoop 在windows下的运行文件https://github.com/steveloughran/winutils 可以参考hadoop的版本,进行下载。
- 将winutils 中对应版本中的文件,拷贝,替换hadoop bin目录下的文件
- 配置hadoop 的环境变量
Image
- 修改hadoop 配置文件
在 haddop 的安装目录下,其etc/hadoop下存储的是hadoop的配置文件。默认情况下,hadoop 会将运行文件存储到用户目录下的临时文件中。这样在出现问题的时候,我们不好排查,最好将对其进行配置。
- 打开core-site.xml文件,配置namenode的对外服务端口
Image - 配置hdfs中,namenode 和datanode的数据存储地址,以及数据的备份数量。
Image
- 启动hdfs 打开命令行,定位到hadoop的安装目录,输入./sbin/start-hdfs.cmd 命令,启动hdfs。
4. Idea 开发环境搭建
- 首先给IDEA安装scala 插件
- 在idea中配置scal-SDK 作为全局sdk
Image - 在idea中将spark 安装目录下的jars 文件夹下的jar包添加
Image
5. 注意点
- 在开发spark应用程序时,必须引用spark提供的相应jar包。其jar包开发的scala版本,必须和本地安装的scala版本保持一致。
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>${spark.version}</version>
</dependency>
- 在安装jdk的时候,尽量不要选择有空格的目录,比如说C:Program Files 这个目录,这样的空格会导致spark在启动时出错。