Windows 10安装Hadoop 3.3.0教程
- 依赖项
- 步骤1 - 下载Hadoop安装包
- 选择下载镜像链接
- 下载安装包
- 步骤 2 - 解压安装包
- 步骤 3 - 安装Hadoop HDFS 本机库
- 步骤 4 - (可选) 安装Java JDK
- 步骤 5 - 设置环境变量
- 设置JAVA_HOME环境变量
- 设置HADOOP_HOME环境变量
- 设置PATH环境变量
- 步骤 6 - 配置Hadoop
- 配置核心站点
- 配置HDFS
- 配置MapReduce以及YARN站点
- 步骤 7 - 初始化HDFS
- 步骤 8 - 开启 HDFS 后台程序
- 步骤 9 - 开启 YARN 后台程序
- 步骤 10 - 验证Java程序
- 步骤 11 - 关闭 YARN 以及 HDFS 后台程序
本文提供详细的关于在Windows 10上安装Hadoop 3.3.0的步骤。Winutil工具为成功安装的依赖条件。3.3.0版本添加了一些新的功能,比如对Java 11的支持,protobuf 升级到了3.7.1等等。请遵循本文中的所有步骤以避免不必要的错误。
依赖项
在开始安装Hadoop之前,请在Windows 10上安装以下工具。
工具 | 详细信息 |
PowerShell | 我们将使用PowerShell下载Hadoop安装包。 在我的系统中,PowerShell的版本如下: $PSversionTable Name Value ---- ----- PSVersion 5.1.19041.1 PSEdition Desktop PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.19041.1 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 |
Git Bash 或者 7 Zip | |
命令行工具(Command Prompt) | 我们将使用它安装Hadoop以及在安装过程中运行一些命令行。 |
Java JDK | JDK 为安装Hadoop的前提条件之一。在我们的系统中,JDK 版本为jdk1.8.0_161。 参考此文关于所有支持的Java版本: https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Java+Versions 从Hadoop 3.3.0开始,Java 11 已在受支持的版本之列。 |
让我们现在开始安装。
步骤1 - 下载Hadoop安装包
选择下载镜像链接
前往下面的下载链接页面:
Apache Download Mirrors - Hadoop 3.3.0
选择离你网络最近的节点。对于我所在地,以下链接是最近的镜像节点之一:
http://apache.mirror.amaze.com.au/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
下载安装包
打开PowerShell 并运行下面的命令行:
$dest_dir="F:\big-data" $url = "http://apache.mirror.amaze.com.au/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz" $client = new-object System.Net.WebClient $client.DownloadFile($url,$dest_dir+"\hadoop-3.3.0.tar.gz")
下载可能会需要一会时间。
当下载完成后,你可以运行以下命令行验证:
PS F:\big-data> cd $dest_dir PS F:\big-data> ls Directory: F:\big-data Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2/08/2020 1:55 AM 500749234 hadoop-3.3.0.tar.gz
你也可以直接通过浏览器下载安装文件并保存于安装文件:
步骤 2 - 解压安装包
现在我们可以开始解压安装包。我将直接使用git bash来解压文件。
开启git bash并将当前文件夹更改至目标安装文件夹:
cd F:/big-data
然后运行以下命令行进行解压:
tar -xvzf hadoop-3.3.0.tar.gz
解压完成后,一个新的子文件夹 hadoop-3.3.0将被创建,如下图所示:
tar: Exiting with failure status due to previous errors请忽略此错误。
步骤 3 - 安装Hadoop HDFS 本机库
在Linux上安装Hadoop时,本机HDFS库为非必需。但当在Windows 10上安装时则为必须。然后Windows本机库并未包含在Hadoop的发行版本中。因此我们需要自行编译。
从以下地址下载3.3.0版本的库文件并保存于Hadoop的bin文件夹中。在我的系统中,文件保存于 F:\big-data\hadoop-3.3.0\bin。请注意将文件保存于您的相应文件夹中。
https://github.com/kontext-tech/winutils/tree/master/hadoop-3.3.0/bin
或者你也可以使用PowerShell下载这些文件:
$client.DownloadFile("https://github.com/kontext-tech/winutils/tree/master/hadoop-3.3.0/bin/hadoop.dll",$dest_dir+"\hadoop-3.3.0\bin\"+"hadoop.dll") $client.DownloadFile("https://github.com/kontext-tech/winutils/tree/master/hadoop-3.3.0/bin/hadoop.exp",$dest_dir+"\hadoop-3.3.0\bin\"+"hadoop.exp") $client.DownloadFile("https://github.com/kontext-tech/winutils/tree/master/hadoop-3.3.0/bin/hadoop.lib",$dest_dir+"\hadoop-3.3.0\bin\"+"hadoop.lib") $client.DownloadFile("https://github.com/kontext-tech/winutils/tree/master/hadoop-3.3.0/bin/hadoop.pdb",$dest_dir+"\hadoop-3.3.0\bin\"+"hadoop.pdb") $client.DownloadFile("https://github.com/kontext-tech/winutils/tree/master/hadoop-3.3.0/bin/libwinutils.lib",$dest_dir+"\hadoop-3.3.0\bin\"+"libwinutils.lib") $client.DownloadFile("https://github.com/kontext-tech/winutils/tree/master/hadoop-3.3.0/bin/winutils.exe",$dest_dir+"\hadoop-3.3.0\bin\"+"winutils.exe") $client.DownloadFile("https://github.com/kontext-tech/winutils/tree/master/hadoop-3.3.0/bin/winutils.pdb",$dest_dir+"\hadoop-3.3.0\bin\"+"winutils.pdb")
下载后,文件夹bin看起来如下图:
步骤 4 - (可选) 安装Java JDK
Java JDK为安装Hadoop的依赖项。如果你尚未安装,请安装Java JDK。
JDK 8可以从以下页面下载:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
安装完成后,请运行以下命令行已验证安装成功:
$ java -version java version "1.8.0_161" Java(TM) SE Runtime Environment (build 1.8.0_161-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
如果你遇到找不到java命令的错误,不用担心,我们将在下面的步骤解决此问题。
步骤 5 - 设置环境变量
设置JAVA_HOME环境变量
设置 JAVA_HOME 变量为非必须但强烈推荐。
首先请找到你的系统中的Java SDK的地址。在我的系统中,地址为:D:\Java\jdk1.8.0_161。
你的JDK的地址可能跟我的会有所不同。
在之前的打开的 PowerShell 窗口中运行以下命令:
SETX JAVA_HOME "D:\Java\jdk1.8.0_161"
如果你的JDK地址中包括空格,请务必用双引号。
命令输出如下图所示:
设置HADOOP_HOME环境变量
用以上类似的方法设置HADOOP_HOME环境变量。在我的系统中,路径是:F:\big-data\hadoop-3.3.0。
你也可以直接使用之前的打开的PowerShell窗口运行下面的命令行:
SETX HADOOP_HOME $dest_dir+"/hadoop-3.3.0"
输出如下图所示:
你也可以直接使用完整的路径:
SETX HADOOP_HOME "F:\big-data\hadoop-3.3.0"
在系统环境变量中确认这两个环境变量设置成功:
设置PATH环境变量
设置完以上两个环境变量后,我们需要将他们的bin文件夹也添加到 PATH 环境变量中。
如果PATH 环境变量已经存在,请直接修改它将以下两个路径添加于其中:
- %JAVA_HOME%/bin
- %HADOOP_HOME%/bin
也可以通过运行以下命令行来将其添加到PATH环境变量中:
setx PATH "$env:PATH;$env:JAVA_HOME/bin;$env:HADOOP_HOME/bin"
你也可以直接编辑PATH环境变量:
关闭PowerShell窗口,然后打开一个新的窗口并输入 winutils.exe 来验证以上的设置已生效:
你也可以直接运行下面的命令验证:
hadoop -version java version "1.8.0_161" Java(TM) SE Runtime Environment (build 1.8.0_161-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
步骤 6 - 配置Hadoop
现在我们需要配置Hadoop的 核心, YARN, MapReduce以及HDFS等相关配置。
配置核心站点
打开文件core-site.xml (位于 %HADOOP_HOME%\etc\hadoop 文件夹中)。在我的系统中,设计路径为 F:\big-data\hadoop-3.3.0\etc\hadoop。
替换configuration:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://0.0.0.0:19000</value>
</property> </configuration>
配置HDFS
便于 hdfs-site.xml 文件(位于%HADOOP_HOME%\etc\hadoop 文件夹中)。
在编辑之前,请在系统中创建两个文件夹: 一个用于 namenode 一个用于数据。 在我的系统中,我创建了以下文件夹:
- F:\big-data\data\dfs\namespace_logs_330
- F:\big-data\data\dfs\data_330
替换configuration (请注意替换其中标记的路径):
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///F:/big-data/data/dfs/namespace_logs_330</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///F:/big-data/data/dfs/data_330</value>
</property> </configuration>
在Hadoop 3中,这些配置项的名称和之前的版本稍有不同。可以参考下面的文件了解全部的配置属性:
配置MapReduce以及YARN站点
编辑 %HADOOP_HOME%\etc\hadoop 文件夹中的 mapred-site.xml 文件。
替换 configuration :
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.application.classpath</name> <value>%HADOOP_HOME%/share/hadoop/mapreduce/*,%HADOOP_HOME%/share/hadoop/mapreduce/lib/*,%HADOOP_HOME%/share/hadoop/common/*,%HADOOP_HOME%/share/hadoop/common/lib/*,%HADOOP_HOME%/share/hadoop/yarn/*,%HADOOP_HOME%/share/hadoop/yarn/lib/*,%HADOOP_HOME%/share/hadoop/hdfs/*,%HADOOP_HOME%/share/hadoop/hdfs/lib/*</value> </property> </configuration>
编辑文件 yarn-site.xml (位于%HADOOP_HOME%\etc\hadoop 文件夹中):
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> </configuration>
步骤 7 - 初始化HDFS
在命令行工具(Command Prompt)中运行此命令行:
hdfs namenode -format
当HDFS格式化成功后,输出如以下界面所示:
步骤 8 - 开启 HDFS 后台程序
在命令行工具中运行以下命令:
%HADOOP_HOME%\sbin\start-dfs.cmd两个命令提示符工具将会开启:一个运行datanode的后台程序,另外一个运行namenode的后台程序如下截图所示:
可以通过HDFS namenode的网站验证后台程序是否开启成功: http://localhost:9870/dfshealth.html#tab-overview。
你也可以跳转到datanode的网站信息页面:
步骤 9 - 开启 YARN 后台程序
以管理员身份开启命令行工具,然后运行以下命令:
%HADOOP_HOME%\sbin\start-yarn.cmd两个命令行窗口会开启:一个用于ResourceManager,另外一个用于NodeManager。
你可以访问以下地址以确认YARN的ResourceManager以成功运行:
步骤 10 - 验证Java程序
运行以下程序可以进一步验证所有程序是否在运行:
jps
步骤 11 - 关闭 YARN 以及 HDFS 后台程序
如果需要,可以通过运行下面的命令关闭开启的YARN以及HDFS后台程序:
%HADOOP_HOME%\sbin\stop-yarn.cmd
%HADOOP_HOME%\sbin\stop-dfs.cmd
如果你在安装过程中遇到了任何问题,可以发布评论,我会尽力帮助大家。