Ubuntu如何简化Hadoop的安装过程
导读:在 Ubuntu 上简化 Hadoop 安装的可行方案 一、最快路径 单机伪分布式一键脚本 适用目标:本机学习/验证,最快在几分钟内跑起来 Hadoop 伪分布式(HDFS + YARN)。 准备:Ubuntu 20.04/22.04 L...
在 Ubuntu 上简化 Hadoop 安装的可行方案
一、最快路径 单机伪分布式一键脚本
- 适用目标:本机学习/验证,最快在几分钟内跑起来 Hadoop 伪分布式(HDFS + YARN)。
- 准备:Ubuntu 20.04/22.04 LTS,至少 2 核 CPU / 4GB 内存 / 20GB 磁盘,可用用户具备 sudo 权限。
- 一键脚本(复制整段到终端执行):
#!/usr/bin/env bash
set -e
echo "=== 简化安装 Hadoop 伪分布式(Ubuntu 20.04/22.04) ==="
# 0) 参数
HADOOP_VER=${
HADOOP_VER:-"3.3.6"}
JAVA_PKG=${
JAVA_PKG:-"openjdk-11-jdk"}
HADOOP_HOME=${
HADOOP_HOME:-"$HOME/hadoop"}
# 1) 基础依赖
sudo apt update -y
sudo apt install -y $JAVA_PKG openssh-server rsync
# 2) SSH 免密(本机)
mkdir -p ~/.ssh
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >
>
~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ssh-keyscan -H localhost >
>
~/.ssh/known_hosts
ssh localhost true
# 3) 安装 Hadoop
cd ~
wget -q https://archive.apache.org/dist/hadoop/core/hadoop-${
HADOOP_VER}
/hadoop-${
HADOOP_VER}
.tar.gz
tar -xzf hadoop-${
HADOOP_VER}
.tar.gz
rm -f hadoop-${
HADOOP_VER}
.tar.gz
[ -d "$HADOOP_HOME" ] &
&
mv "$HADOOP_HOME" "$HADOOP_HOME.bak_$(date +%F_%T)"
mv hadoop-${
HADOOP_VER}
"$HADOOP_HOME"
# 4) 环境变量
grep -qxF "export HADOOP_HOME=$HADOOP_HOME" ~/.bashrc || echo "export HADOOP_HOME=$HADOOP_HOME" >
>
~/.bashrc
grep -qxF 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' ~/.bashrc || echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >
>
~/.bashrc
grep -qxF "export JAVA_HOME=$(readlink -f /usr/bin/java | sed 's:/bin/java::')" ~/.bashrc || echo "export JAVA_HOME=$(readlink -f /usr/bin/java | sed 's:/bin/java::')" >
>
~/.bashrc
source ~/.bashrc
# 5) 写入 Hadoop 配置
cat >
"$HADOOP_HOME/etc/hadoop/core-site.xml" <
<
'EOF'
<
configuration>
<
property>
<
name>
fs.defaultFS<
/name>
<
value>
hdfs://localhost:9000<
/value>
<
/property>
<
/configuration>
EOF
cat >
"$HADOOP_HOME/etc/hadoop/hdfs-site.xml" <
<
'EOF'
<
configuration>
<
property>
<
name>
dfs.replication<
/name>
<
value>
1<
/value>
<
/property>
<
/configuration>
EOF
if [ ! -f "$HADOOP_HOME/etc/hadoop/mapred-site.xml" ];
then
cp "$HADOOP_HOME/etc/hadoop/mapred-site.xml.template" "$HADOOP_HOME/etc/hadoop/mapred-site.xml"
fi
cat >
"$HADOOP_HOME/etc/hadoop/mapred-site.xml" <
<
'EOF'
<
configuration>
<
property>
<
name>
mapreduce.framework.name<
/name>
<
value>
yarn<
/value>
<
/property>
<
/configuration>
EOF
cat >
"$HADOOP_HOME/etc/hadoop/yarn-site.xml" <
<
'EOF'
<
configuration>
<
property>
<
name>
yarn.nodemanager.aux-services<
/name>
<
value>
mapreduce_shuffle<
/value>
<
/property>
<
/configuration>
EOF
# 6) 格式化并启动
"$HADOOP_HOME/bin/hdfs" namenode -format -force
"$HADOOP_HOME/sbin/start-dfs.sh"
"$HADOOP_HOME/sbin/start-yarn.sh"
echo "✅ 安装完成,进程:"
jps
echo "✅ Web UI:"
echo " HDFS NameNode: http://localhost:9870"
echo " YARN ResourceManager: http://localhost:8088"
echo "✅ 测试命令:"
echo " hdfs dfs -ls /"
echo " hdfs dfs -mkdir -p /test &
&
echo 'hello hadoop' | hdfs dfs -put - /test/hello.txt"
- 说明:脚本自动设置 JAVA_HOME(读取 java 命令的链接目标),并写入最小化的 core-site.xml / hdfs-site.xml / mapred-site.xml / yarn-site.xml。首次启动会格式化 NameNode,请确认无重要数据。
二、常见坑与快速修复
-
JAVA_HOME 未生效
- 现象:执行脚本报 “ERROR: JAVA_HOME is not set …”
- 快速修复:
- 确认路径:readlink -f /usr/bin/java 输出如 /usr/lib/jvm/java-11-openjdk-amd64/bin/java,则 JAVA_HOME 应为 /usr/lib/jvm/java-11-openjdk-amd64。
- 写入环境:echo ‘export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64’ > > ~/.bashrc & & source ~/.bashrc
- 或在 Hadoop 环境文件显式设置:echo ‘export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64’ > > $HADOOP_HOME/etc/hadoop/hadoop-env.sh
- 某些环境下,仅在 /etc/environment 中设置 JAVA_HOME 才被脚本识别,可补充写入:echo ‘JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64’ | sudo tee -a /etc/environment。
-
SSH 免密失败
- 现象:start-dfs.sh 卡住或提示需要密码
- 快速修复:
- 生成密钥:ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
- 授权公钥:cat ~/.ssh/id_rsa.pub > > ~/.ssh/authorized_keys & & chmod 600 ~/.ssh/authorized_keys
- 本机测试:ssh localhost 无需密码即成功。
-
端口被占用
- 现象:NameNode/ResourceManager 启动失败
- 快速修复:
- 检查占用:ss -tulpen | grep -E ‘9000|8088|9870’
- 结束占用或改用未占用端口,并同步修改 core-site.xml / yarn-site.xml 对应端口后重启。
三、进阶 使用现成脚本与自动化工具
- 开源一键脚本
- 示例一:GitHub 上的 hadoop 一键搭建脚本(支持自动安装 OpenSSH、配置免密、修改 Hadoop 配置,适合 Ubuntu 18.04,示例版本 Hadoop 2.8.5 + JDK 1.8)。适合快速体验与教学演示。
- 示例二:hadoop2023.sh(面向 Ubuntu 23.04 等,自动安装 Java 8、解压 Hadoop 3.1.3 到 /usr/local、写入 PATH 与 hadoop-env.sh 的 JAVA_HOME)。脚本思路清晰,便于二次改造。
- 自动化运维
- 团队/多机环境建议用 Ansible 编排(批量安装 JDK、分发 Hadoop、统一配置与启停),可显著减少重复劳动与人为失误。
四、验证与常用命令
- 进程检查:jps 应看到 NameNode / DataNode / ResourceManager / NodeManager。
- HDFS 操作:
- 查看根目录:hdfs dfs -ls /
- 上传测试:echo ‘hello hadoop’ | hdfs dfs -put - /test/hello.txt
- 读取测试:hdfs dfs -cat /test/hello.txt
- Web UI:
- HDFS NameNode:http://localhost:9870
- YARN ResourceManager:http://localhost:8088
- 停止服务:
- “$HADOOP_HOME/sbin/stop-yarn.sh”
- “$HADOOP_HOME/sbin/stop-dfs.sh”
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu如何简化Hadoop的安装过程
本文地址: https://pptw.com/jishu/769586.html
