在 Microsoft Windows 上运行 Apache Hadoop 是比较繁琐的任务,在安装过程中会出现许多错误,最终,大多数用户放弃了通过 Windows 使用 Hadoop,并转而使用基于 Linux 的操作系统。
本文讲述了有关如何在Windows上无误安装和运行Apache Hadoop所有组件的各个方面。请先为以下先决条件准备好PC/笔记本电脑:
1. Java开发工具包
Apache Hadoop 与最新版本的JDK不兼容。建议下载Java SE Development Kit版本15.0.x(可能需要注册Oracle帐户)。
安装链接:https://www.oracle.com/java/technologies/javase/jdk15-archive-downloads.html
2. 设置环境路径
(仅在未安装Java或从未设置Java路径时才执行此步骤)。
进入设置 -> 搜索 "环境变量" -> 选择 "编辑系统变量 "选项。出现以下对话框:
单击“环境变量…”按钮。出现以下窗口:
选择新按钮并在变量名称中键入“JAVA_HOME”,将值设置为Java SDK的bin文件夹的路径(通常为类型:C:\Program Files\Java\jdk-15.0.1\bin)。对于用户和系统变量都执行此步骤。
从用户变量中选择路径选项(稍后同样适用于系统变量)。单击“编辑”并通过单击“新建”按钮(从右侧)添加Java bin路径。对于用户和系统变量都执行此步骤。
现在,通过满足先决条件,已准备好在Windows上安装Apache Hadoop。
从以下链接中下载tar.gz文件(注意-最可能需要下载的是底部的第三个文件)。
安装链接:https://downloads.apache.org/hadoop/common/hadoop-3.3.4/
确保将Hadoop文件夹提取到C:驱动器中(而不是任何文件夹或其他驱动器中)
提取后,请确保hadoop-3.3.4(文件夹名称)对用户具有写入权限。
下面我们进入安装步骤的关键部分,设置Hadoop的配置,请仔细遵循这些步骤。我们需要更改以下文件:
- 编辑文件C:\ Hadoop-3.3.4 \ etc \ hadoop \ core-site.xml,编辑xml代码并保存:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
注意:如果端口正在使用,则可能需要更改端口(此处为9000)。
- 编辑文件C:\Hadoop-3.3.4\etc\hadoop\mapred-site.xml,编辑xml代码并保存:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
3. 编辑文件
编辑C:\Hadoop-3.3.4\etc\hadoop\hdfs-site.xml,编辑xml代码并保存:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/hadoop-3.3.4/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/hadoop-3.3.4/data/datanode</value>
</property>
</configuration>
4. 创建目录
创建以下目录
a. 在“C:\ hadoop-3.3.4 \”下创建文件夹“data”
b. 在“C:\ hadoop-3.3.4 \ data \”下创建文件夹“datanode”
c. 在“C:\ hadoopo-3.3.4 \ data \”下创建文件夹“namenode”
5. 编辑文件
编辑文件C:\ Hadoop-3.3.4 \ etc \ hadoop \ yarn-site.xml,编辑xml代码并保存:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
6. 编辑文件
编辑文件C:\Hadoop-3.3.4\etc\hadoop\hadoop-env.cmd,编辑以下行:
“JAVA_HOME=C:\\Progra~1\Java\jdk-15.0.1\bin” instead of set “JAVA_HOME=C:\Java”
注意:可以使用JAVA_HOME变量,但由于路径地址(Program Files)中存在空格,会引发错误。
到这一步已经完成了编辑配置的工作。现在,我们将在cmd中执行命令以运行Hadoop。
从下面链接中的bin文件夹中粘贴文件到Hadoop bin文件夹中,注意不要替换整个bin文件夹,复制文件并仅替换选定的文件。确保bin文件夹总共有22个项目。这一步很关键,因为现有的bin文件夹具有不完整的文件集,这些文件集是运行资源管理器所需的。
安装链接:https://drive.google.com/drive/folders/1fDbblP61sUKmDqvQ8pfU98nMt_we4b5J?usp=share_link
7. 为Hadoop设置环境和路径变量
进入设置->打开环境变量->在用户变量中添加新变量:
变量名称:HADOOP_HOME,值:C:\ hadoop-3.3.4 \ bin(到hadoop bin文件夹的路径)。
进入用户变量中的路径,点击编辑,添加新路径:
路径值与上面相同(到Hadoop bin文件夹的路径)。
将以下路径值添加到系统变量中:
C:\ hadoop-3.3.4 \ bin
C:\ hadoop-3.3.4 \ sbin
以“管理员身份运行”打开cmd(或powershell),并使用cd命令导航到Hadoop的bin目录:
cd C:\hadoop-3.3.4\bin\
8. 格式化目录
使用相同的cmd(powershell)命令格式化“namenode”目录;
hdfs namenode -format
9. 启动组件
要启动Hadoop组件,将当前目录改为sbin文件夹:
cd C:\hadoop-3.3.4\sbin\
并运行“start-all.cmd”可执行文件。可以通过在文件资源管理器中导航到sbin目录中的start-all.cmd并选择“以管理员身份运行”来执行此操作。
注意:如果通过执行第8步,无法查看yarn终端(cmd),请从同一目录中以管理员身份打开“start-yarn.cmd”。
现在就能看到四个终端(cmd)同时运行。
确保所有四个组件都在运行,这些组件是:
a. hadoop namenode
b. hadoop datanode
c. yarn resourcemanager
d. yarn nodemanager
注意:可以使用终端中的“jps”命令进行验证。如果任何一个(或多个)进程“关闭”,请检查上一部分中的Hadoop配置步骤。
在成功运行组件后,可以通过在Web浏览器中打开http://localhost:8088来访问Hadoop默认创建的群集。
上图显示了具有值1的活动节点的突出显示字段,表示已创建一个节点并正在运行。
单击左侧栏上的“节点”以查看所创建节点的详细信息。
要检查namenode的状态,请在Web浏览器中打开http://localhost:9870。可以通过顶部导航栏下的“实用程序”部分在GUI下访问HDFS。
注意:图中显示 "localhost:9001",因为端口号9000已经被我的电脑使用了。我已经在Hadoop配置步骤中改变了它。(在core-site.xml文件中)。
恭喜,已成功在PC上安装了Apache Hadoop。现在,可以从本地计算机执行map reduce任务,开始探索Hadoop Map Reduce的功能吧。