针对MapReduce的Java编程本地调试,如果编码本机有基础环境则更为方便,这里以win11下安装Hadoop 3.3.6虚拟环境为例;选3.3.6版本是因为wintuils工具目前最新完全兼容版本就是这个了;
工具准备
- JDK 1.8 任意版本,传送门(二选一): ADOPT-OpenJDK 8.0.452+9(清华大学镜像站) | openLogic openJDK 8u442-b06 x86_64
- hadoop 3.3.6完整包,传送门: hadoop-3.3.6.tar.gz(from 吉林大学镜像站)
winutils 对应版本工具,传送门(二选一): Admin/winutils(Gitee,搬运) | cdarlint/winutils(Github)
右上角Code展开Download zip即可,如图:
安装&解压…
- 双击JDK安装包,按提示完成安装;注意,在步骤“自定义安装”时,修改安装路径至自己想放的位置,路径尽量不要包含空格;将Set JAVA_HOME 选项设定为“整个功能将安装在本地磁盘上”,如下图:
解压hadoop-3.3.6.tar.gz至想放的文件夹(我这里是
D:\Software\OE\hadoop-3.3.6
),解压后大概结构如下图所示:在解压目录下创建文件夹
data
,进入data
文件夹并在其中分别创建namenode
、datanode
和tmp
共三个文件夹;记住这三个文件夹的位置,后续步骤要用;- 我这里分别是
D:\Software\OE\hadoop-3.3.6\data\namenode
、D:\Software\OE\hadoop-3.3.6\data\datanode
、D:\Software\OE\hadoop-3.3.6\data\tmp
- 我这里分别是
- 解压
winutils-master.zip
,解压后打开解压目录下的hadoop 3.3.6/bin
文件夹,全选其中的文件并复制;粘贴至hadoop 3.3.6的解压目录/bin
目录(对应我这里是 D:\Software\OE\hadoop-3.3.6\bin)下,粘贴完成后文件夹内大概结构如下图:
环境配置
与正常hadoop安装流程一样,要为hadoop修改配置文件
- 进入
hadoop解压目录/etc/hadoop
目录下; - 编辑core-site.xml,在
<configuration>
与</configuration>
标签中插入以下内容:
<property>
<name>hadoop.tmp.dir</name>
<value>file:///*安装解压章节 第2步中tmp目录的绝对路径*</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
注意:替换路径时需要将\
替换为/
或\\
,如file:///D:/Software/OE/hadoop-3.3.6/data/tmp
- 编辑hdfs-site.xml,在
<configuration>
与</configuration>
标签中插入以下内容:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///*安装解压章节 第2步中namenode目录的绝对路径*</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///*安装解压章节 第2步中datanode目录的绝对路径*</value>
</property>
- 编辑mapred-site.xml,在
<configuration>
与</configuration>
标签中插入以下内容:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- 编辑yarn-site.xml,在
<configuration>
与</configuration>
标签中插入以下内容:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
配置环境变量
- 打开设置 -> 系统 -> 系统信息 ,点击“高级系统设置”,在弹出窗口中点击右下角的“环境变量”,如下图:
- 点击系统变量栏的“新建”按钮,变量名填写为
HADOOP_HOME
,变量值填写为hadoop
解压的目录(我这里是D:\Software\OE\hadoop-3.3.6
),如下图: - 找到系统环境变量中的
Path
变量并选中,点击“编辑”,在弹出窗口右侧菜单栏中点击“新建”按钮,填入%HADOOP_HOME%\bin
后点击确定;如下图所示: - 打开powerShell/cmd,输入
hadoop version
命令,查看是否有返回值,有则表示环境变量配置成功并已生效,如下图所示:
初始化HDFS文件系统
- 打开Powershell/cmd,输入
hdfs namenode -format
命令执行即可;等待执行完成,出现“has been successfully formatted.”字样即为初始化成功,如下图: - 以管理员权限运行Powershell/CMD,使用
cd
命令进入hadoop的sbin目录下,并运行脚本start-all.cmd
,举个例子(我的是D:\Software\OE\hadoop-3.3.6\sbin):
cd D:\Software\OE\hadoop-3.3.6\sbin
.\start-all.cmd
然后弹出一大堆黑色窗口,注意查看每个窗口上有无Java特征的报错信息,如无则启动成功了,先不要急着关闭黑窗口,进入浏览器打开网页 127.0.0.1:9870看一下HDFS状态,确认无误后逐个关闭黑窗口,hadoop就停止运行了 ~