hadoop windows 环境

老刘

Windows 环境下搭建 Hadoop 详细教程(小白从零开始)

很多朋友想学大数据,第一反应就是装 Hadoop。官方更推荐 Linux,但现实中不少人电脑是 Windows,临时练手又不想装虚拟机。其实 Windows 环境下也能把 Hadoop 跑起来,只要步骤对,新手半天就能搞定。下面按小白能看懂的节奏,从零开始一步一步讲清楚。

先搞清楚:Windows 上跑 Hadoop 靠谱吗

Hadoop 底层依赖 Linux 的一些命令和权限机制,Windows 原生支持不完整。目前最稳妥的做法是:用官方二进制包 + 社区提供的 winutils 工具补齐缺失的功能。这种方法不用装 Cygwin,也不用改系统,适合日常学习、写 MapReduce 程序、练 HDFS 操作。

注意几点:

  • 只适合单机伪分布式模式,别拿来跑生产集群。
  • 建议用 Windows 10 或 11 的 64 位系统。
  • 内存至少 8G,推荐 16G,硬盘留 20G 以上空闲。
  • 路径里尽量别出现中文和空格,否则容易报错。

准备工作:下载这些东西

  1. JDK 8
    去 Oracle 官网或 Adoptium 下载 jdk-8u 版本,安装时记住路径,比如 C:\Java\jdk1.8.0_xxx
    装完打开命令提示符输入 java -version,能看到版本号就行。

  2. Hadoop 3.x 二进制包
    推荐 Hadoop 3.3.6(稳定且兼容性好)。到 Apache 官网下载 hadoop-3.3.6.tar.gz,解压到 D:\hadoop(路径自己定,后面统一用这个举例)。

  3. winutils.exe
    这是关键。去 GitHub 搜 “winutils hadoop”,找到对应 3.3.6 版本的 winutils 和 hadoop.dll。把它们放到 D:\hadoop\bin 目录下。没有这个文件,后面格式化 namenode 会直接失败。

下载完后目录结构大致是这样:

D:\hadoop
├── bin
│   ├── hadoop
│   ├── winutils.exe
│   └── hadoop.dll
├── etc
├── sbin
└── ...

配置环境变量(最容易出错的一步)

右键“此电脑”→属性→高级系统设置→环境变量。

  1. 新建系统变量

    • 变量名:JAVA_HOME
      变量值:C:\Java\jdk1.8.0_xxx
    • 变量名:HADOOP_HOME
      变量值:D:\hadoop
  2. 编辑 Path 变量,新增两行:

    • %JAVA_HOME%\bin
    • %HADOOP_HOME%\bin
    • %HADOOP_HOME%\sbin

配置完重新打开命令提示符,输入:

hadoop version

能看到版本信息就说明环境变量生效了。

修改配置文件(伪分布式核心)

所有配置文件都在 D:\hadoop\etc\hadoop 目录。用记事本或 VS Code 打开,注意保存时编码选 UTF-8。

1. hadoop-env.cmd

找到 set JAVA_HOME 那一行,改成:

set JAVA_HOME=C:\Java\jdk1.8.0_xxx

(路径按自己实际改,不要用 %JAVA_HOME%

2. core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>D:/hadoop/tmp</value>
    </property>
</configuration>

先手动建一个 D:\hadoop\tmp 文件夹。

3. hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/D:/hadoop/data/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/D:/hadoop/data/datanode</value>
    </property>
</configuration>

同样提前建好 D:\hadoop\data\namenodedatanode 两个文件夹。

4. mapred-site.xml

如果没有这个文件,把 mapred-site.xml.template 复制一份改名。内容如下:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

5. yarn-site.xml

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

格式化并启动 Hadoop

打开命令提示符(管理员权限更稳),依次执行:

  1. 格式化 namenode(只做一次)

    hdfs namenode -format

    看到 “successfully formatted” 就成功了。如果报错,检查 winutils 和路径。

  2. 启动 HDFS

    start-dfs.cmd

    会弹出两个窗口:namenode 和 datanode。

  3. 启动 YARN

    start-yarn.cmd

    再弹出 resourcemanager 和 nodemanager 窗口。

  4. 检查是否成功 浏览器打开:

两个页面都能打开,说明 Windows 环境下的 Hadoop 已经跑起来了。

验证是否真的能用

随便创建一个目录:

hdfs dfs -mkdir /test
hdfs dfs -ls /

能看到 /test 就说明 HDFS 正常。

再跑一个官方自带的 WordCount 例子(需要先准备输入文件),能出结果就证明 MapReduce 也没问题。

常见坑和解决办法

  • 报错 “Error: JAVA_HOME is incorrectly set”
    回到 hadoop-env.cmd,把路径写成绝对路径,不要带空格。

  • datanode 起不来
    删掉 datatmp 文件夹重新格式化,或者检查端口 9000、9866 有没有被占用。

  • 权限报错 AccessControlException
    在 core-site.xml 加一条:

    <property>
      <name>hadoop.security.authorization</name>
      <value>false</value>
    </property>
  • 启动后窗口一闪就关
    hadoop-daemon.cmd 单独启动某个进程,看具体报错日志。

  • 中文路径乱码
    所有路径统一用英文,配置文件编码改成 UTF-8 无 BOM。

进阶小建议

装好后如果觉得命令行不方便,可以再装一个 Hadoop 的 Windows 客户端工具,或者直接用 IDEA 写 MapReduce 程序远程提交。
想更省事的话,后续可以考虑用 WSL2 装 Ubuntu,再在里面搭 Hadoop,性能和兼容性都比原生 Windows 好很多。
单机玩熟了,再去学完全分布式、高可用、Hive、Spark 这些,就轻松多了。

整套流程跟着做一遍,基本就能在 Windows 环境下稳定使用 Hadoop。把每一步的配置文件保存好,下次重装系统也能快速恢复。

文章版权声明:文章内容均来源于各大短视频平台搜集以及修改和删减新增,如有侵权或者违规,请联系站长进行删除,如需转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,3人围观)

还没有评论,来说两句吧...

目录[+]