access_time 17 days ago language中文
more_vert

Windows 10安装Hadoop 3.3.0教程

visibility 9 comment 0

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

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


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

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将被创建,如下图所示:


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看起来如下图:

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

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


步骤 8 - 开启 HDFS 后台程序

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

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

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

你也可以跳转到datanode的网站信息页面:

步骤 9 - 开启 YARN 后台程序

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

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

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


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

http://localhost:8088


步骤 10 - 验证Java程序

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

jps


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

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

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

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

copyright This page is subject to Site terms.
Like this article?
Share on

Please log in or register to comment.

account_circle Log in person_add Register

Log in with external accounts

Follow Kontext

Get our latest updates on LinkedIn or Twitter.

Want to contribute on Kontext to help others?

Learn more

More from Kontext

visibility 1514
thumb_up 0
access_time 8 months ago