(AI 总结版)Windows 11 WSL Ubuntu 环境:安装 Hadoop 完整指南
重要声明或更新!!!
如果后面还要使用Hive,Java版本需要选Java8。
怎么换Java版本,下文里有。所以这里就不更新了。
本文详细介绍了在WSL Ubuntu环境下安装Hadoop的完整流程。
主要内容包括:
1) 环境准备(安装WSL、Ubuntu及必要工具);
2) 配置SSH免密登录;
3) 下载安装Hadoop 3.3.6并配置环境变量;
4) 详细说明Hadoop核心配置文件的修改方法;
5) 提供启动/停止脚本及常见问题解决方案。
指南采用国内镜像加速下载,包含一键安装脚本,适合Windows 11用户快速搭建Hadoop开发环境,最低要求4GB内存和2GB硬盘空间。
Hadoop 在 WSL Ubuntu 上的完整安装指南
一、环境准备
1.1 安装 WSL 和 Ubuntu
以管理员身份打开 PowerShell 或 CMD,执行:
powershell
# 安装 WSL wsl --install # 重启电脑后,打开 Microsoft Store 安装 Ubuntu 22.04 或 24.04
1.2 更新系统并安装必要软件
打开 WSL 终端(Ubuntu),执行:
bash
# 更新软件包 sudo apt update && sudo apt upgrade -y # 安装必要工具 sudo apt install -y openjdk-11-jdk openssh-server wget curl nano net-tools # 验证 Java 安装 java -version # 应该显示 openjdk version "11.0.xx"
二、配置 SSH 免密登录
bash
# 1. 启动 SSH 服务 sudo service ssh start # 2. 生成 SSH 密钥 ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 3. 配置免密登录 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh # 4. 添加 localhost 到已知主机 ssh-keyscan localhost >> ~/.ssh/known_hosts 2>/dev/null # 5. 测试免密登录(应该不需要密码) ssh localhost exit
三、下载并安装 Hadoop
3.1 下载 Hadoop(使用国内镜像)
bash
# 创建下载目录 cd ~ mkdir -p downloads && cd downloads # 使用清华镜像下载 Hadoop 3.3.6 wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz # 验证下载(文件大小约 696MB) ls -lh hadoop-3.3.6.tar.gz
3.2 解压安装
bash
# 解压到 /usr/local sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/ # 重命名目录 sudo mv /usr/local/hadoop-3.3.6 /usr/local/hadoop # 修改权限(将 mumu 替换为你的用户名) sudo chown -R $(whoami):$(whoami) /usr/local/hadoop
四、配置环境变量
bash
# 编辑 .bashrc nano ~/.bashrc
在文件末尾添加:
bash
# Java 环境 export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # Hadoop 环境 export HADOOP_HOME=/usr/local/hadoop export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存退出(Ctrl+O,Enter,Ctrl+X)
bash
# 使配置生效 source ~/.bashrc # 验证 hadoop version
五、配置 Hadoop 核心文件
进入配置目录:
bash
cd $HADOOP_HOME/etc/hadoop
5.1 配置 hadoop-env.sh
bash
# 添加 JAVA_HOME 配置 echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> hadoop-env.sh
5.2 配置 core-site.xml
bash
cat > core-site.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/$(whoami)/hadoop_tmp</value>
</property>
</configuration>
EOF
5.3 配置 hdfs-site.xml
bash
cat > hdfs-site.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/$(whoami)/hadoop_tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/$(whoami)/hadoop_tmp/dfs/data</value>
</property>
</configuration>
EOF
5.4 配置 yarn-site.xml
bash
cat > yarn-site.xml << 'EOF'
<?xml version="1.0"?>
<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>
EOF
5.5 配置 mapred-site.xml
bash
cat > mapred-site.xml << 'EOF'
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
EOF
5.6 配置 yarn-env.sh
bash
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> yarn-env.sh
六、创建数据目录并格式化
bash
# 创建数据目录 mkdir -p ~/hadoop_tmp/dfs/name mkdir -p ~/hadoop_tmp/dfs/data # 格式化 NameNode(输入 Y 确认) hdfs namenode -format
七、启动 Hadoop
bash
# 启动所有服务 start-all.sh # 等待 30 秒 sleep 30 # 验证进程(应该看到 5 个核心进程) jps
预期输出:
text
NameNode DataNode SecondaryNameNode ResourceManager NodeManager Jps
八、创建启动/停止脚本(可选但推荐)
8.1 创建启动脚本
bash
mkdir -p ~/bin cat > ~/bin/start-hadoop.sh << 'EOF' #!/bin/bash echo "=========================================" echo "Starting Hadoop Cluster" echo "=========================================" # 启动 SSH 服务 echo "1. Starting SSH service..." sudo service ssh start # 启动 Hadoop echo "2. Starting Hadoop..." start-all.sh # 等待服务启动 echo "3. Waiting 30 seconds for services..." sleep 30 # 显示进程 echo "4. Checking Hadoop processes..." jps echo "" echo "=========================================" echo "✅ Hadoop is ready!" echo " - HDFS UI: http://localhost:9870" echo " - YARN UI: http://localhost:8088" echo "=========================================" EOF
8.2 创建停止脚本
bash
cat > ~/bin/stop-hadoop.sh << 'EOF' #!/bin/bash echo "=========================================" echo "Stopping Hadoop Cluster" echo "=========================================" stop-all.sh echo "" echo "✅ Hadoop stopped" EOF
8.3 设置权限和 PATH
bash
chmod +x ~/bin/start-hadoop.sh ~/bin/stop-hadoop.sh echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
九、验证安装
9.1 测试 HDFS 命令
bash
# 创建目录 hdfs dfs -mkdir -p /user/$(whoami)/test # 上传文件 echo "Hello Hadoop" > test.txt hdfs dfs -put test.txt /user/$(whoami)/test/ # 查看文件 hdfs dfs -ls /user/$(whoami)/test/ hdfs dfs -cat /user/$(whoami)/test/test.txt
9.2 访问 Web 界面
在 Windows 浏览器中打开:
-
HDFS:
http://localhost:9870/explorer.html -
YARN:
http://localhost:8088
十、日常使用
启动 Hadoop
bash
# 方法一:使用脚本 start-hadoop.sh # 方法二:手动启动 sudo service ssh start start-all.sh
停止 Hadoop
bash
stop-hadoop.sh
常用命令速查
| 操作 | 命令 |
|---|---|
| 查看进程 | jps |
| 列出 HDFS 文件 | hdfs dfs -ls / |
| 创建目录 | hdfs dfs -mkdir -p /path |
| 上传文件 | hdfs dfs -put local.txt /hdfs/path/ |
| 下载文件 | hdfs dfs -get /hdfs/path/file.txt ./ |
| 查看文件内容 | hdfs dfs -cat /hdfs/path/file.txt |
| 删除文件 | hdfs dfs -rm /hdfs/path/file.txt |
十一、常见问题解决
问题 1:Java 版本错误
bash
# 检查 Java 版本必须是 11 java -version # 如果不是 11,切换版本 sudo update-alternatives --config java # 选择 Java 11
问题 2:SSH 连接失败
bash
sudo service ssh start ssh localhost exit
问题 3:NameNode 无法启动
bash
# 停止所有服务 stop-all.sh # 删除临时文件 rm -rf ~/hadoop_tmp/dfs/name/* ~/hadoop_tmp/dfs/data/* # 重新格式化 hdfs namenode -format # 重新启动 start-all.sh
问题 4:端口被占用
bash
# 检查端口 netstat -tlnp | grep 9870 netstat -tlnp | grep 8088 # 更换端口或关闭占用进程
十二、系统要求
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| 操作系统 | Windows 11(启用 WSL2) | Windows 11 Pro |
| 内存 | 4GB | 8GB+ |
| 硬盘空间 | 2GB(Hadoop)+ 1GB(数据) | 10GB+ |
| WSL 版本 | WSL2 | WSL2 |
| Ubuntu 版本 | 20.04+ | 22.04 或 24.04 |
| Java 版本 | Java 11 | Java 11 |
快速复现命令汇总
复制以下代码块,在 WSL 终端中一次性执行(注意替换用户名):
bash
# ============ 一键安装脚本 ============
# 注意:执行前请确保已安装 WSL 和 Ubuntu
# 1. 安装基础软件
sudo apt update && sudo apt install -y openjdk-11-jdk openssh-server wget curl nano
# 2. 配置 SSH
sudo service ssh start
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 3. 下载并安装 Hadoop
cd ~
wget -P ~/downloads/ https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
sudo tar -xzvf ~/downloads/hadoop-3.3.6.tar.gz -C /usr/local/
sudo mv /usr/local/hadoop-3.3.6 /usr/local/hadoop
sudo chown -R $(whoami):$(whoami) /usr/local/hadoop
# 4. 配置环境变量(追加到 .bashrc)
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> ~/.bashrc
echo 'export HADOOP_HOME=/usr/local/hadoop' >> ~/.bashrc
echo 'export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop' >> ~/.bashrc
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> ~/.bashrc
source ~/.bashrc
# 5. 配置 Hadoop 文件(在配置目录中执行)
cd $HADOOP_HOME/etc/hadoop
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> hadoop-env.sh
echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> yarn-env.sh
# 写入配置文件(继续在配置目录执行,注意替换用户名)
cat > core-site.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/$(whoami)/hadoop_tmp</value>
</property>
</configuration>
EOF
cat > hdfs-site.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/$(whoami)/hadoop_tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/$(whoami)/hadoop_tmp/dfs/data</value>
</property>
</configuration>
EOF
cat > yarn-site.xml << EOF
<?xml version="1.0"?>
<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>
EOF
cat > mapred-site.xml << EOF
<?xml version="1.0"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
EOF
# 6. 创建数据目录并格式化
mkdir -p ~/hadoop_tmp/dfs/name ~/hadoop_tmp/dfs/data
hdfs namenode -format
# 7. 启动 Hadoop
start-all.sh
sleep 30
jps
恭喜!按照以上步骤,你可以在任何 Windows 11 电脑上成功安装 Hadoop!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)