安装一个最小化的Hadoop

为了学习HDFS和之后的MapReduce,我们需要安装一个Hadoop。

Hadoop一共有3种运行模式

  • 独立模式:不启动守护进程,所有程序运行在一个JVM进程中。独立模式运行Hadoop很方便,适合学习和开发阶段
  • 伪分布式:Hadoop运行在本机上,模拟一个小规模集群
  • 全分布式:Hadoop运行在集群上,相当于一个生产环境

本节主要对独立模式的安装进行讨论。

由于我的主力机器是Windows,为了之后书写代码方便。所以我选择在Windows安装Hadoop,Linux安装方法也类似,主要区别为配置环境变量不太一样,所以不过多赘述。

注意:在Windows设置环境变量可能不会立即生效,可以在当前窗口使用set命令(例如set JAVA_HOME=xxxx)进行测试,然后再修改环境变量保存。

本节环境为

  • Windows 11
  • JDK 11.0.17

一、前期准备

Hadoop是一个Java编写的程序,所以它既可以运行在Linux系统上,也可以运行在Windows上,官方下载的程序也具有Windows的支持。所以我们需要准备一个JDK,这里建议1.8以上。

二、下载程序

  1. 下载符合你操作系统的JDK,版本在1.8以上均可
  2. https://hadoop.apache.org/releases.html下载Hadoop程序。这里我下载的是2.10.2
  3. Windows需要额外下载winutils.exe和hadoop.dll,从https://github.com/cdarlint/winutils下载对应版本的winutils.exe和hadoop.dll。如果没有对应版本的目录,则主版本号一样的相近版本的文件即可,这里我选择下载的是hadoop-2.9.2/bin

三、安装

Step1:安装JDK和设置JAVA_HOME

安装JDK,安装完成后并且配置环境变量JAVA_HOME。然后在你的终端输入

Windows:
%JAVA_HOME%/bin/java -version
Linux:
$JAVA_HOME/bin/java -version

确保能够正常输出Java版本,例如

java version "11.0.17" 2022-10-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.17+10-LTS-269)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.17+10-LTS-269, mixed mode)

注意:JDK安装目录最好不要有空格,如果你的JDK安装在 Program Files 文件夹下,使用 PROGRA~1 代替 Program File。例如JDK安装目录为C:\Program Files\Java\jdk-11.0.17,则环境变量应该设置为C:\PROGRA~1\Java\jdk-11.0.17

如果不方便配置JAVA_HOME,也可以修改Hadoop程序目录下的etc/hadoop/hadoop-env文件,在里面加上一行

Windows:hadoop-env.cmd文件
set JAVA_HOME=你的JDK安装目录
Linux:hadoop-env.sh文件
export JAVA_HOME=你的JDK安装目录

Step2:解压Hadoop

解压Hadoop到任意位置,打开终端进入bin目录

输入hadoop version,你会在终端看到如下字样:

Hadoop 2.10.2
Subversion Unknown -r 965fd380006fa78b2315668fbc7eb432e1d8200f
Compiled by ubuntu on 2022-05-24T22:35Z
Compiled with protoc 2.5.0
From source with checksum d3ab737f7788f05d467784f0a86573fe
This command was run using /D:/hadoop-2.10.2/share/hadoop/common/hadoop-common-2.10.2.jar

Step3:设置Hadoop环境变量

  1. 设置HADOOP_HOME为Hadoop解压位置
  2. 添加HADOOP_HOME/bin到PATH下。这样就不用每次到Hadoop解压目录下运行hadoop了

Setp4:Windows额外步骤

Hadoop在Windows上需要一些本地库才能正常工作,包括访问file://文件系统,其中Hadoop使用一些Windows API来实现类似posix的文件访问权限。

  1. 复制winutils.exe和hadoop.dll到HADOOP_HOME的bin目录下

至此,一个运行在独立模式下的Hadoop安装完成。