前言

在服务器中有专门的 Hadoop 集群,但是在本地开发测试中,单机的 Hadoop 便于调试.

一、 准备环境

操作系统: Windows 10
Java: jdk-8u221-windows-x64 | 环境部署不再赘述
Hadoop: Hadoop-3.1.2
Hadoop WinUtils: WinUtils

二、 安装

2.1 解压

解压缩下载的 Hadoop 二进制文件,个人使用的解压工具为7-Zip.

  • 选择安装路径时请注意尽量使用英文不带空格的路径,防止出现意想不到的问题,同时也推荐所有开发环境的配置都这么做.
  • 解压缩时请直接解压到预定目录,否则在复制时可能产生目标路径过长的问题.

TargetTooLong

解决办法:

  1. 执行命令robocopy sourceDir destinationDir /E
  2. (该方法未进行尝试)专业版用户可以通过修改组策略解除限制(本地计算机策略>计算机配置>管理模板>系统>文件系统>NTFS>启用长路径).

2.2 配置环境变量

  • 需要配置HADOOP_HOMEPATH

    1. 使用快捷键 windows+r,输入 sysdm.cpl,敲击回车进入。

    2. 点击高级。

    3. 选择最底部的环境变量。

    4. 配置HADOOP_HOME

      HADOOP_HOME

    5. 配置PATH

      PATH

    6. 执行命令hadoop version,如下图所示则成功

      HADOOP_VERSION

2.3 配置 Hadoop 文件

所有的%HADOOP_HOME%请自行替换成自己的 Hadoop 路径,%HADOOP_MAPRED_HOME%%HADOOP_HOME%同路径.

  1. 修改%HADOOP_HOME%\etc\hadoop\core-site.xml,加入如下文本,并建立对应文件夹.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <configuration>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
    </property>
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/%HADOOP_HOME%/data/tmp</value>
    </property>

    </configuration>
  2. 修改%HADOOP_HOME%\etc\hadoop\mapred-site.xml,加入如下文本.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    <property>
    <name>mapreduce.application.classpath</name>
    <value>%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/*:%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/lib/*</value>
    </property>
    <property>
    <name>mapred.job.tracker</name>
    <value>hdfs://localhost:9001</value>
    </property>
    </configuration>
  3. 修改%HADOOP_HOME%\etc\hadoop\yarn-site.xml,加入如下文本.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <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>
  4. 修改%HADOOP_HOME%\etc\hadoop\hdfs-site.xml,加入如下文本,并建立对应文件夹.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <configuration>
    <!-- 这个参数设置为1,因为是单机版hadoop -->
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    <property>
    <name>dfs.namenode.name.dir</name>
    <value>%HADOOP_HOME%/data/namenode</value>
    </property>
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>%HADOOP_HOME%/data/datanode</value>
    </property>
    </configuration>
  5. 将对应版本的 Hadoop WinUtils 覆盖到 bin 目录.此步不执行会报错!

  6. 网上大部分教程还会要求配置 hadoop-env.cmd,修改其中的 JAVA_HOME,但是只要系统 Java 环境变量版本配置过并且为 1.8,此步可以省略.

2.4 运行

  • 管理员权限执行%HADOOP_HOME%\sbin\start-all.cmd即可启动伪分布式集群(启动时产生的窗口请保持开启),同时可访问http://localhost:9870查看运行情况.

Localhost

  • 执行%HADOOP_HOME%\sbin\stop-all.cmd即可关闭伪分布式集群.

参考