Windows 10安装Hadoop 3.3.0教程

Raymond Raymond event 2021-02-11 visibility 3,580
more_vert

本文提供详细的关于在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

我们需要使用Git Bash或者7 Zip解压Hadoop的安装文件。

命令行工具(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

info 在下面的步骤中,此地址将被会用于下载安装文件。你的链接地址可能会不同于我的,请注意替换其为相应的地址。

下载安装包

info 在此教程中,我将Hadoop安装于F磁盘(F:\big-data)。如果你想安装在不同的路径,请注意修改以下步骤中的相应地址。安装路径在以下文中也被称为目标文件夹。

打开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")

下载可能会需要一会时间。

20200801153044-image.png

当下载完成后,你可以运行以下命令行验证:

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

你也可以直接通过浏览器下载安装文件并保存于安装文件:

warning 请保留PowerShell窗口开启,如果你已经关闭了它,请记得重新定义这些变量: $client 以及 $dest_dir。

步骤 2 - 解压安装包

现在我们可以开始解压安装包。我将直接使用git bash来解压文件。

开启git bash并将当前文件夹更改至目标安装文件夹:

cd F:/big-data

然后运行以下命令行进行解压:

tar -xvzf  hadoop-3.3.0.tar.gz

解压完成后,一个新的子文件夹 hadoop-3.3.0将被创建,如下图所示:

20200801161114-image.png

info Wh当解压时,你可能与遇到以下类似错误:
tar: Exiting with failure status due to previous errors
请忽略此错误。

步骤 3 - 安装Hadoop HDFS 本机库

在Linux上安装Hadoop时,本机HDFS库为非必需。但当在Windows 10上安装时则为必须。然后Windows本机库并未包含在Hadoop的发行版本中。因此我们需要自行编译。

info我已经提前将Hadoop3.3.0的安装库发布于以下地址:
https://github.com/kontext-tech/winutils 
warning 这些库文件仅用于学习和测试用,请勿用于正式生产环境中。

从以下地址下载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看起来如下图:
20200801161533-image.png

步骤 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

2020011804902-image.png

你的JDK的地址可能跟我的会有所不同。 

在之前的打开的 PowerShell 窗口中运行以下命令:

SETX JAVA_HOME "D:\Java\jdk1.8.0_161" 

如果你的JDK地址中包括空格,请务必用双引号。

命令输出如下图所示:

2020011805542-image.png

设置HADOOP_HOME环境变量

用以上类似的方法设置HADOOP_HOME环境变量。在我的系统中,路径是:F:\big-data\hadoop-3.3.0

你也可以直接使用之前的打开的PowerShell窗口运行下面的命令行:

SETX HADOOP_HOME $dest_dir+"/hadoop-3.3.0"                        

输出如下图所示:

20200801161749-image.png

你也可以直接使用完整的路径:

SETX HADOOP_HOME "F:\big-data\hadoop-3.3.0"

在系统环境变量中确认这两个环境变量设置成功:

20200801162938-image.png

设置PATH环境变量

设置完以上两个环境变量后,我们需要将他们的bin文件夹也添加到 PATH 环境变量中。

如果PATH 环境变量已经存在,请直接修改它将以下两个路径添加于其中:

  • %JAVA_HOME%/bin
  • %HADOOP_HOME%/bin

也可以通过运行以下命令行来将其添加到PATH环境变量中:

setx PATH "$env:PATH;$env:JAVA_HOME/bin;$env:HADOOP_HOME/bin"

你也可以直接编辑PATH环境变量:

2020011812142-image.png

关闭PowerShell窗口,然后打开一个新的窗口并输入 winutils.exe 来验证以上的设置已生效:

20200801162033-image.png

你也可以直接运行下面的命令验证:

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中,这些配置项的名称和之前的版本稍有不同。可以参考下面的文件了解全部的配置属性:

Hadoop 3.3.0 hdfs_default.xml

info关于DFS备份属性,我们配置为1,因为我们配置的是一个伪集群。 默认值为 3。
infoDFS文件夹的相关配置为非必须,它的默认值是Hadoop的临时文件夹。此教程中我选择将其设置为非默认值。

配置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格式化成功后,输出如以下界面所示:

2020080203046-image.png

步骤 8 - 开启 HDFS 后台程序

在命令行工具中运行以下命令:

%HADOOP_HOME%\sbin\start-dfs.cmd
两个命令提示符工具将会开启:一个运行datanode的后台程序,另外一个运行namenode的后台程序如下截图所示:

2020080203328-image.png

可以通过HDFS namenode的网站验证后台程序是否开启成功: http://localhost:9870/dfshealth.html#tab-overview

2020080203638-image.png

你也可以跳转到datanode的网站信息页面:2020080203831-image.png

步骤 9 - 开启 YARN 后台程序

warning 在开启YARN后台程序时你可能会遇到权限相关的错误。 可以通过以管理员身份打开命令行工具解决。

以管理员身份开启命令行工具,然后运行以下命令:

%HADOOP_HOME%\sbin\start-yarn.cmd
两个命令行窗口会开启:一个用于ResourceManager,另外一个用于NodeManager。

2020080204040-image.png

你可以访问以下地址以确认YARN的ResourceManager以成功运行:

http://localhost:8088

2020080204146-image.png

步骤 10 - 验证Java程序

运行以下程序可以进一步验证所有程序是否在运行:

jps

2020080204433-image.png

步骤 11 - 关闭 YARN 以及 HDFS 后台程序

如果需要,可以通过运行下面的命令关闭开启的YARN以及HDFS后台程序:

%HADOOP_HOME%\sbin\stop-yarn.cmd
%HADOOP_HOME%\sbin\stop-dfs.cmd
check 恭喜!你已经成功的在Windows 10 中安装了Hadoop 3.3.0。

如果你在安装过程中遇到了任何问题,可以发布评论,我会尽力帮助大家。

More from Kontext
comment Comments
No comments yet.

Please log in or register to comment.

account_circle Log in person_add Register

Log in with external accounts