教程适用的环境及软件选用的版本
系统: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
注意事项:拷贝时选择替换同名文件
替换成功后文件夹内容
三、配置环境变量
注意事项:
- Scala依赖JDK,需要先配置Java的环境变量
- Windows系统在安装JDK时,默认的文件路径包含空格(D:\Program Files\),进行Java开发不会产生影响;但在local环境运行Spark代码时会存在问题
- 配置环境变量时,需要使用 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
- D:\progra~1\hadoop-3.3.0\bin\winutils.exe不配置Hadoop也能正常使用
- 高版本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窗口再进行新的验证