当前位置: 首页 > news >正文

实用指南:WSL2搭建Hadoop伪分布式环境

目录

在 WSL2 Ubuntu 安装必备环境

下载并配置 Hadoop

启动 / 停止 Hadoop

Spring Boot 空项目

一键脚本(WSL)


本文目标:在 WSL2 的 Ubuntu 里跑起单机版 Hadoop(伪分布式),并建好 Spring Boot 空工程

在 WSL2 Ubuntu 安装必备环境

安装 JDK 17

sudo apt install openjdk-17-jdk -y

验证:

java -version

安装 Maven 和 Git

sudo apt install maven git -y

验证:

mvn -v
git --version

安装 SSH

Hadoop 的伪分布式需要本机 SSH:

sudo apt install openssh-server -y

生成免密钥:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

测试:

ssh localhost

应该能直接登录,不再要密码。

下载并配置 Hadoop

创建用户并加权限

# 创建 hadoop 用户
sudo adduser hadoop
# 给 hadoop 用户 sudo 权限
sudo usermod -aG sudo hadoop

切换用户

su - hadoop

进入工作目录

mkdir -p ~/bigdata-labs && cd ~/bigdata-labs

下载 Hadoop(3.3.x 为稳定版)

在浏览器打开https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz

下载好后放到 /home/hadoop/bigdata-labs 

解压并更名

tar -xvzf hadoop-3.3.6.tar.gz
mv hadoop-3.3.6 hadoop

配置环境变量(hadoop 用户)

编辑:

nano ~/.bashrc

加入:

export HADOOP_HOME=/home/hadoop/bigdata-labs/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

添加之后按ctrl + o 保存,然后按enter确认修改,最后按ctrl + x 退出

刷新:

source ~/.bashrc

继续配置环境变量:

echo 'export HADOOP_HOME=~/bigdata-labs/hadoop' >> ~/.bashrc
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> ~/.bashrc
source ~/.bashrc

修改 hadoop-env.sh,指向 JDK17:

nano ~/bigdata-labs/hadoop/etc/hadoop/hadoop-env.sh

在最末尾添加:

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64

配置 NameNode 地址

在文件夹中找这个路径,\home\hadoop\bigdata-labs\hadoop\etc\hadoop

找到之后有一个 core-site.xml 文件,加入:

fs.defaultFShdfs://localhost:9000

这里的 localhost:9000 就是 NameNode 的 RPC 服务地址

然后找 hdfs-site.xml 文件

加入:

dfs.replication1dfs.namenode.name.dirfile:/home/hadoop/bigdata-labs/hadoop/dfs/namedfs.datanode.data.dirfile:/home/hadoop/bigdata-labs/hadoop/dfs/data

dfs.namenode.name.dir  存储 NameNode 的元数据(namespace、FSImage、EditLog 等)
dfs.datanode.data.dir  存储 DataNode 的实际数据块

继续找 yarn-site.xml 文件

加入:

yarn.resourcemanager.hostnamelocalhostyarn.nodemanager.aux-servicesmapreduce_shuffle

找到 mapred-site.xml 文件

加入:

mapreduce.framework.nameyarn

然后由于JDK 17 的模块限制在卡 Guice/cglib(YARN 的 Web/注入框架),默认不允许用反射访问 java.lang 里的受限方法。所以需要给 YARN(以及 Hadoop/MapReduce 守护进程)加上 --add-opens 启动参数

yarn-env.sh

nano $HADOOP_HOME/etc/hadoop/yarn-env.sh

在文件末尾追加一行

export YARN_OPTS="$YARN_OPTS \--add-opens=java.base/java.lang=ALL-UNNAMED \--add-opens=java.base/java.lang.reflect=ALL-UNNAMED \--add-opens=java.base/java.io=ALL-UNNAMED"

hadoop-env.sh

nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh

在文件末尾追加一行

export HADOOP_OPTS="$HADOOP_OPTS \--add-opens=java.base/java.lang=ALL-UNNAMED \--add-opens=java.base/java.lang.reflect=ALL-UNNAMED \--add-opens=java.base/java.io=ALL-UNNAMED"

mapred-env.sh

nano $HADOOP_HOME/etc/hadoop/mapred-env.sh

在文件末尾追加一行

export MAPRED_OPTS="$MAPRED_OPTS \--add-opens=java.base/java.lang=ALL-UNNAMED \--add-opens=java.base/java.lang.reflect=ALL-UNNAMED \--add-opens=java.base/java.io=ALL-UNNAMED"

启动 / 停止 Hadoop

格式化 HDFS(首次需要)

hdfs namenode -format

启动

start-dfs.sh
start-yarn.sh

验证

# 看进程
jps

可以看到以下五个内容

检查 Web UI
NameNode: http://localhost:9870
ResourceManager: http://localhost:8088 (应能看到 1 个活跃的 Node)

停止

stop-yarn.sh
stop-dfs.sh

Spring Boot 空项目

在 IDEA 里新建 Maven 项目 spring-hadoop-playground,依赖:

org.apache.hadoophadoop-client3.3.6

测试启动类:

@SpringBootApplication
public class HadoopPlaygroundApp {public static void main(String[] args) {SpringApplication.run(HadoopPlaygroundApp.class, args);}
}

运行后控制台输出 Started HadoopPlaygroundApp 即成功

一键脚本(WSL)

平常如果不写脚本,需要手动敲两条命令:
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
这样才能同时启动 HDFS(NameNode、DataNode、SecondaryNameNode) 和 YARN(ResourceManager、NodeManager)

脚本的作用:自动化
把这两条命令放进一个 start-hadoop.sh 脚本文件里,下次只要敲:

./start-hadoop.sh

就能一键启动全部服务。

具体操作:

新建 start-hadoop.sh

nano start-hadoop.sh

加入:

#!/bin/bash
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh

然后保存退出


赋权

chmod +x start-hadoop.sh

给脚本执行权限


运行

./start-hadoop.sh

一键执行,省得每次都手动输入两条命令

http://www.hskmm.com/?act=detail&tid=22756

相关文章:

  • 3整数规划-分支定界法
  • [apple pencil二代充不上电]
  • 分布式光纤声波振动与AI的深度融合:开启智慧感知新时代 - 指南
  • 2025液压扳手实力厂家推荐榜:精准扭矩与耐用品质专业之选
  • 2025试验机实力厂家品牌公司最新权威推荐榜:精准测试与技术创新标杆之选
  • AI元人文:价值共生体系统——构建人机文明的演进基石——DeeoSeek融合
  • 2025喷涂厂家TOP企业品牌推荐排行榜,喷涂、喷涂设备、 喷涂生产线、喷涂流水线推荐这十家公司!
  • 完整教程:【JAVA】【BUG】经常出现的典型 bug 及解决办法
  • 浅析 AC 自动机
  • 2025百度官网认证作用代理商推荐,北京益百科技通过官网认证,助力企业优化搜索排名,提升用户体验,降低营销成本
  • 读人形机器人28智慧城市2
  • VMware ESXi 9.0.1.0 发布 - 领先的裸机 Hypervisor
  • VMware vSphere 9.0.1.0 发布 - 企业级工作负载平台
  • 《索引实战:结构与场景解析》 - 详解
  • Hadoop完全分布式配置 - 实践
  • VMware Cloud Foundation Automation 9.0.1.0 发布 - 私有云自动化平台
  • VMware Cloud Foundation Operations 9.0.1.0 发布 - 私有云运维管理
  • VMware Cloud Foundation Operations for Networks 9.0.1.0 发布 - 云网络监控与分析
  • 2025护栏板厂家TOP企业品牌推荐排行榜,波形护栏板、乡村、公路、道路、镀锌、喷塑、城乡、路侧、两波、三波护栏板推荐这十家公司!
  • 在AI技术唾手可得的时代,挖掘新需求成为核心竞争力——某知名AI开发框架需求洞察
  • 2025 年充电桩厂家TOP企业品牌推荐排行榜,汽车、电车、智能、重卡、电动车直流、新能源车、大功率、一体式双枪、双枪直流、通用快充充电桩公司推荐!
  • 2025加工厂家企业品牌推荐排行榜,走心机、精密细长轴、进口津上机、精密零部件、机械零件非标定制、新能源电机传动轴、紧固件、复杂零件一次成型、内外螺纹台阶轴卡簧槽键槽加工推荐
  • 2025年地磅厂家TOP企业品牌推荐排行榜,电子地磅、物联网、无人值守、汽车衡、防爆、自动称重系统、100 吨地磅、专业地磅汽车衡公司推荐!
  • 5、论文-项目采购管理
  • 2025 年微波干燥设备厂家 TOP 企业品牌推荐排行榜,黄粉虫、黑水虻、中药材、茶叶、食品、粮食、大虾、茶叶、海产品、砂型微波干燥设备公司推荐!
  • 5、论文-采购管理
  • 自定义扩展控件
  • 千景导航站 - 一站式开发者资源与技术工具导航平台
  • 2025十一集训——Day1模拟赛
  • 2025十一集训——Day1做题