Ubuntu HDFS如何集群搭建
小樊
32
2025-12-20 19:38:37
Ubuntu 上搭建 HDFS 集群实操指南
一 环境规划与准备
- 节点规划:至少准备3 台 Ubuntu 18.04/20.04/22.04 服务器,建议架构为1 个 NameNode + 2 个 DataNode(可扩展更多 DataNode)。
- 基础软件:安装 OpenJDK 8 或 11(Hadoop 3.x 支持 Java 8/11),配置 SSH 免密登录(至少 NameNode 能免密登录各 DataNode),建议统一 NTP 时间同步。
- 网络与主机名:为每台机器设置静态 IP与主机名,并在所有节点编辑 /etc/hosts 做主机映射,确保节点间可互相解析与访问。
- 目录规划:预先创建本地数据目录(示例:/opt/hadoop_data/namenode、/opt/hadoop_data/datanode),并确保运行 Hadoop 的用户对这些目录拥有读写权限。
二 安装与基础配置
- 安装 Java(示例为 OpenJDK 8):
sudo apt update && sudo apt install -y openjdk-8-jdk
java -version
- 创建专用用户(可选):
sudo adduser hadoop && sudo usermod -aG sudo hadoop
- 配置 SSH 免密(在 NameNode 执行,并复制到各节点):
ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
ssh-copy-id hadoop@namenode
ssh-copy-id hadoop@datanode1
ssh-copy-id hadoop@datanode2
- 下载并解压 Hadoop(示例版本 3.3.6):
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
sudo tar -xzvf hadoop-3.3.6.tar.gz -C /opt && sudo chown -R $USER:$USER /opt/hadoop-3.3.6
- 环境变量(写入 ~/.bashrc 或 /etc/profile.d/hadoop.sh 并 source 生效):
export HADOOP_HOME=/opt/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
- 同步配置到各节点(示例):
rsync -av /opt/hadoop-3.3.6 hadoop@datanode1:/opt/
rsync -av ~/.bashrc hadoop@datanode1:~/
三 HDFS 核心配置
- 配置目录:$HADOOP_HOME/etc/hadoop
- 关键文件与示例(按你的实际主机名与路径调整):
- hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
- core-site.xml
fs.defaultFS
hdfs://namenode:9000
hadoop.tmp.dir
/opt/hadoop_data/tmp
- hdfs-site.xml
dfs.replication
2
dfs.namenode.name.dir
file:///opt/hadoop_data/namenode
dfs.datanode.data.dir
file:///opt/hadoop_data/datanode
dfs.namenode.secondary.http-address
secondary:50090
- workers(或旧版 slaves)
namenode
datanode1
datanode2
提示:Hadoop 3.x 默认 NameNode Web UI 端口为 9870(Hadoop 2.x 为 50070)。
四 启动与验证
- 首次启动前格式化 NameNode(仅一次):
hdfs namenode -format
- 启动 HDFS:
start-dfs.sh
- 常用验证:
- 查看集群概况:hdfs dfsadmin -report
- 进程检查:jps(应看到 NameNode/DataNode/SecondaryNameNode 等进程)
- Web 界面:浏览器访问 http://namenode:9870(查看 Live Nodes、容量与使用情况)
- 简单功能测试:
hdfs dfs -mkdir /test
hdfs dfs -put /etc/hosts /test
hdfs dfs -ls /test
- 常见问题速查:
- 节点未注册:检查 workers 文件、SSH 免密、防火墙/安全组、数据目录权限与 NameNode/DataNode 日志($HADOOP_HOME/logs)。
五 扩展与运维建议
- 横向扩容:在新节点安装相同版本 Hadoop,同步配置与 workers 文件,启动 DataNode:
hdfs --daemon start datanode
然后在 NameNode 执行 hdfs dfsadmin -report 确认新节点出现。
- 端口与连通性:确保节点间开放 HDFS 相关端口(如 9000、9864–9871),或临时关闭防火墙用于排障。
- 高可用与监控:生产环境建议部署 ZooKeeper + QJM/JournalNode 实现 NameNode HA,并集成 Prometheus + Grafana 进行监控与告警。