如何在 Windows 上安装配置 Spark
环境
- CPU: Intel(R) Core(TM) i7-4710MQ CPU @ 2.50GHz
- MEM: 16.0 GB
- System: Windows 10 Professional Edition
- Spark: 2.4.0
- Scala: 2.11.12
从 2.0 版开始,Spark 默认使用 Scala 2.11 构建。Scala 2.10 用户应该下载 Spark 源包并使用 Scala 2.10 支持构建。
JDK 配置
关于 JDK 的安装教程,可以点击这里查看。
请注意 hadoop 不能识别空格,如果你安装在 C:\Program Files\Java\jdk1.8.0_191
这里,你需要将环境变量修改成 C:\Progra~1\Java\jdk1.8.0_191
Hadoop
下载
首先点击这里,进入 Hadoop 官网下载页面。
在 windows 下,我们需要 hadoop.dll 和 winutils.exe,hadoop.dll 防止报 nativeio 异常、winutils.exe 没有的话报空指针异常
可以点击这里进行下载
选择 3.0.3 版本进行下载,然后点击 binary 地址进行下载
选中官方推荐的地址即可下载,其他地址也可用(建议采用迅雷等下载工具下载,速度比较会快很多)
配置
将 Spark 解压到常用软件的目录下,比如我就保存在 D:\Programs\hadoop-3.0.3
这里,并修改了文件名,方便查看
接下来需要进行环境变量配置,变量如下:
变量名 | 变量值 |
---|---|
HADOOP_HOME | D:\Programs\hadoop-3.0.3 |
Path | %HADOOP_HOME%\bin |
Path | %HADOOP_HOME%\sbin |
注意:path 进行添加,而不是新建
环境变量修改后,我们需要对 Hadoop 进行参数配置,我配置的是单节点,所以不需要配置 hosts
首先打开 D:\Programs\hadoop-3.0.3\etc\hadoop
这个目录,分别编辑下面几个文件,根据个人需求更改参数:
core-site.xml
1 | <configuration> |
参数 | 属性值 | 解释 |
---|---|---|
fs.defaultFS | hdfs://localhost:9000 | hdfs 调用端口 |
hdfs-site.xml
1 | <configuration> |
参数 | 属性值 | 解释 |
---|---|---|
dfs.replication | 1 | 分片数量,伪分布式将其配置成 1 即可 |
dfs.permissions | false | 是否打开权限检查系统 |
dfs.namenode.name.dir | file:/D:/Programs/hadoop-3.0.3/data/namenode | 命名空间和事务在本地文件系统永久存储的路径 |
dfs.datanode.data.dir | file:/D:/Programs/hadoop-3.0.3/data/datanode | DataNode 在本地文件系统中存放块的路径 |
yarn-site.xml
1 | <configuration> |
参数 | 属性值 | 解释 |
---|---|---|
yarn.nodemanager.aux-services | mapreduce_shuffle | NodeManager 上运行的附属服务。需配置成 mapreduce_shuffle,才可运行 MapReduce 程序 |
yarn.nodemanager.auxservices.mapreduce.shuffle.class | org.apache.hadoop.mapred.ShuffleHandler | 是否打开权限检查系统 |
yarn.resourcemanager.address | ${yarn.resourcemanager.hostname}:8032 | ResourceManager 对客户端暴露的地址。客户端通过该地址向 RM 提交应用程序,杀死应用程序等 |
yarn.resourcemanager.scheduler.address | ${yarn.resourcemanager.hostname}:8030 | ResourceManager 对 ApplicationMaster 暴露的访问地址。ApplicationMaster 通过该地址向 RM 申请资源、释放资源等。 |
yarn.resourcemanager.resource-tracker.address | ${yarn.resourcemanager.hostname}:8031 | ResourceManager 对 NodeManager 暴露的地址.。NodeManager 通过该地址向 RM 汇报心跳,领取任务等 |
yarn.resourcemanager.admin.address | ${yarn.resourcemanager.hostname}:8033 | ResourceManager 对管理员暴露的访问地址。管理员通过该地址向 RM 发送管理命令等 |
yarn.resourcemanager.webapp.address | ${yarn.resourcemanager.hostname}:8088 | ResourceManager 对外 web ui 地址。用户可通过该地址在浏览器中查看集群各类信息 |
yarn.resourcemanager.scheduler.class | org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler | 启用的资源调度器主类。目前可用的有 FIFO、Capacity Scheduler 和 Fair Scheduler |
yarn.resourcemanager.resource-tracker.client.thread-count | 50 | 处理来自 NodeManager 的 RPC 请求的 Handler 数目 |
yarn.resourcemanager.scheduler.client.thread-count | 50 | 处理来自 ApplicationMaster 的 RPC 请求的 Handler 数目 |
yarn.scheduler.minimum-allocation-mb/yarn.scheduler.maximum-allocation-mb | 1024/8192 | 单个可申请的最小 / 最大内存资源量。比如设置为 1024 和 3072,则运行 MapRedce 作业时,每个 Task 最少可申请 1024MB 内存,最多可申请 3072MB 内存 |
yarn.scheduler.minimum-allocation-vcores/yarn.scheduler.maximum-allocation-vcores | 1/32 | 单个可申请的最小 / 最大虚拟 CPU 个数。比如设置为 1 和 4,则运行 MapRedce 作业时,每个 Task 最少可申请 1 个虚拟 CPU,最多可申请 4 个虚拟 CPU |
yarn.resourcemanager.nodes.include-path/yarn.resourcemanager.nodes.exclude-path | NodeManager 黑白名单。如果发现若干个 NodeManager 存在问题,比如故障率很高,任务运行失败率高,则可以将之加入黑名单中。注意,这两个配置参数可以动态生效 | |
yarn.resourcemanager.nodemanagers.heartbeat-interval-ms | 1000 | NodeManager 心跳间隔 |
HDFS 初始化
首先需要根据 hdfs-site.xml 的配置路径,创建文件夹
然后使用下面的命令初始化 hdfs
1 | hdfs namenode -format |
格式化完毕后,如图所示,则表示初始化成功
启动 Hadoop
初始化完毕后,我们就可以使用下面的命令启动 hadoop 了
1 | start-dfs |
如图所示,启动 hadoop 后会弹出 4 个窗口
可以访问 http://localhost:8088 查看所有任务的运行情况
可以访问 http://localhost:9870 查看 Hadoop 集群 (虽然只有一个节点) 运行情况
至此整个 hadoop 就搭建好了
测试 Hadoop 例子
我们可以使用一个简单的例子来测试一下 hadoop 是否能够正常运行
我们从 hadoop 安装文件夹,启动一个终端,使用下面的命令,计算 pi 值
1 | hadoop jar .\share\hadoop\mapreduce\hadoop-mapreduce-examples-3.0.3.jar pi 10 10 |
如图所示,我们计算量比较少导致不够精确,但是已经可以成功运算出 pi 值了
Spark
下载
首先点击这里,进入 Spark 官网下载页面。
选择下载版本,以及 Hadoop 版本,然后点击 tgz 地址进行下载
选中官方推荐的地址即可下载,其他地址也可用(建议采用迅雷等下载工具下载,速度比较会快很多)
配置
将 Spark 解压到常用软件的目录下,比如我就保存在 D:\Programs\spark-2.4.0
这里,并修改了文件名,方便查看
接下来需要进行环境变量配置,变量如下:
变量名 | 变量值 |
---|---|
SPARK_HOME | D:\Programs\spark-2.4.0 |
Path | %SPARK_HOME%\bin |
注意:path 进行添加,而不是新建
下面我们来验证一下看 spark 是否能正常启动
在控制台输入 spark-shell
情况如图表示,则说明我们已经将 spark 安装配置完毕了