Spark在Windows下使用Hadoop

教程适用的环境及软件选用的版本

系统:Windows 10 21H1
JDK:1.8.0_271
Scala:2.12.11
Hadoop:3.3.0
IDEA:2021.1.3

提供附件格式说明

官网下载速度较慢,所以将使用到的附件上传到了阿里云盘
附件 winutils-master.exe、hadoop-3.3.0.exe 之所以采用.exe(自解压格式),是因为阿里云盘不支持压缩文件的分享;若担心包含病毒可使用提供的官网链接下载

一、下载适用Linux系统的Hadoop安装包(*.tar.gz)

官网链接
阿里云盘
选择需要的版本,此处以3.3.0为例在这里插入图片描述
将下载的文件解压到自己认为合适的位置,比如:D:\Program Files\hadoop-3.3.0

二、下载Hadoop的Windows版本的二进制文件

GitHub链接
阿里云盘
注意事项:接下来使用时,应选择与第一步中Hadoop主版本号相同的(3.3.0 -> 3.0.0)
在这里插入图片描述
解压下载文件,将与自己下载的Hadoop相对应版本中的bin路径下的所有文件拷贝到,第一步解压后bin路径。比如:D:\Program Files\hadoop-3.3.0\bin
注意事项:拷贝时选择替换同名文件

替换成功后文件夹内容
在这里插入图片描述

三、配置环境变量

注意事项:

  1. Scala依赖JDK,需要先配置Java的环境变量
  2. Windows系统在安装JDK时,默认的文件路径包含空格(D:\Program Files\),进行Java开发不会产生影响;但在local环境运行Spark代码时会存在问题
  3. 配置环境变量时,需要使用 progra~1 替换 Program Files (自定义Java安装路径,且路径中不含空格的请忽略)

需要配置的环境

Ⅰ、JDK
变量名(N):JAVA_HOME
变量值(V):D:\progra~1\Java\jdk1.8.0_271
Ⅱ、Scala
变量名(N):SCALA_HOME
变量值(V):D:\progra~1\scala-2.12.11
Ⅲ、Hadoop
变量名(N):HADOOP_HOME
变量值(V):D:\progra~1\hadoop-3.3.0
Ⅳ、path添加JDK与Hadoop相关项
变量值(V):%JAVA_HOME%\bin;%SCALA_HOME%\bin;%HADOOP_HOME%\bin;%HADOOP_HOME%\sbin;

配置成功验证 win+R 进入 CMD窗口

java -version
scala -version
hadoop version

四、常见网络解觉方案辨析

Ⅰ、不论JDK还是Hadoop都不需要配置CLASSPATH

  1. D:\progra~1\hadoop-3.3.0\bin\winutils.exe不配置Hadoop也能正常使用
  2. 高版本JDK都不需要配置CLASSPATH

Ⅱ、不需要修改 hadoop-3.3.0\etc\hadoop\hadoop-env.cmd 文件中JDK安装路径;

因为该配置文件中使用%JAVA_HOME%环境变量读取JDK文件,只需按照上述配置相应的环境变量即可

五、常见的错误提示及解决办法

Ⅰ、hadoop version

提示: ‘hadoop’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
在这里插入图片描述
问题原因:Hadoop环境变量配置不正确
解决办法:参考第三步进行修改
注意事项:修改配置后,新打开一个CMD窗口,在执行 hadoop version

Ⅱ、IDEA运行Spark项目,控制台报错

提示:ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
在这里插入图片描述
问题原因:
1. Hadoop环境变量配置不正确;参考第三步进行修改
2. 未将下载好的Hadoop的Windows版本二进制文件,粘贴到环境变量配置的Hadoop安装路径下的bin目录中;参考第二步完成修改
注意事项:修改配置后,记得关闭当前IDEA窗口,重新打开新的IDEA窗口再进行新的验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值