Ubuntu 上配置 HDFS 集群节点的实操步骤
一 环境准备与规划
- 准备至少 2 台 Ubuntu 主机(建议 Ubuntu 20.04/22.04),统一安装 OpenJDK 8,并配置 静态 IP 与 主机名解析(/etc/hosts),确保节点间可互通。
- 规划角色:至少 1 个 NameNode(可兼 ResourceManager),其余为 DataNode(可兼 NodeManager)。
- 建议目录(示例):Hadoop 安装至 /usr/local/hadoop-3.3.6,数据目录 /opt/hadoop/hdfs/{namenode,datanode},临时目录 /opt/hadoop/tmp。
- 示例规划:
| 角色 |
主机名 |
服务 |
| 主节点 |
master |
NameNode, ResourceManager |
| 从节点 |
slave1 |
DataNode, NodeManager |
| 从节点 |
slave2 |
DataNode, NodeManager |
| 以上准备与规划可参考 Ubuntu 网络配置、hosts 解析、Java 与 SSH 免密登录等通用实践。 |
|
|
二 安装 Java 与 Hadoop 并配置 SSH
- 安装 Java(所有节点):
sudo apt update && sudo apt install -y openjdk-8-jdk
java -version
- 下载并解压 Hadoop(主节点操作,再分发到各节点):
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/
- 环境变量(所有节点,~/.bashrc 或 /etc/profile):
export HADOOP_HOME=/usr/local/hadoop-3.3.6
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source ~/.bashrc
- SSH 免密登录(主节点执行,分发公钥到所有节点):
ssh-keygen -t rsa -P “” -f ~/.ssh/id_rsa
ssh-copy-id user@slave1
ssh-copy-id user@slave2
以上步骤涵盖 Java 安装、Hadoop 安装与环境变量设置、SSH 免密登录的通用做法。
三 配置 HDFS 核心文件
- 配置 hadoop-env.sh(所有节点,设置 JAVA_HOME):
echo “export JAVA_HOME=$JAVA_HOME” >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh
- 配置 core-site.xml(主节点,指定默认文件系统):
fs.defaultFS
hdfs://master:9000
hadoop.tmp.dir
/opt/hadoop/tmp
- 配置 hdfs-site.xml(主节点,设置副本数与数据目录):
dfs.replication
2
dfs.namenode.name.dir
/opt/hadoop/hdfs/namenode
dfs.datanode.data.dir
/opt/hadoop/hdfs/datanode
- 配置 workers(主节点,列出所有从节点主机名):
echo -e “slave1\nslave2” > $HADOOP_HOME/etc/hadoop/workers
- 同步配置到从节点(主节点执行):
scp -r $HADOOP_HOME slave1:$HADOOP_HOME
scp -r $HADOOP_HOME slave2:$HADOOP_HOME
以上为核心配置文件与 workers 的标准做法,含副本数与本地数据目录设置。
四 启动 HDFS 并验证
- 格式化 NameNode(仅首次在主节点执行一次):
hdfs namenode -format -force
- 启动 HDFS(主节点):
start-dfs.sh
- 验证进程与集群状态:
jps # 主节点应见 NameNode;从节点应见 DataNode
hdfs dfsadmin -report # 查看 DataNode 注册与健康状态
- Web 界面:
HDFS NameNode:http://master:9870
YARN ResourceManager:http://master:8088(如启用 YARN)
以上命令与 Web 端口为 Hadoop 3.x 常用入口。
五 扩展节点与常见问题
- 扩展新 DataNode(示例新增 slave3):
- 按“二”完成新节点基础环境(Java、SSH、Hadoop 目录与环境变量)。
- 在主节点将新节点加入 workers:echo “slave3” >> $HADOOP_HOME/etc/hadoop/workers,并同步配置。
- 在新节点启动守护进程:
hdfs --daemon start datanode
yarn --daemon start nodemanager(如启用 YARN)
- 在主节点执行 hdfs dfsadmin -report 确认新节点已注册。
- 常见问题排查:
- 配置文件不一致或路径错误:核对 core-site.xml/hdfs-site.xml 与 JAVA_HOME。
- SSH 免密失败:确认 ~/.ssh/authorized_keys 已分发且权限正确。
- 防火墙/安全组:放行 HDFS 与 YARN 相关端口(或临时关闭防火墙用于排查)。
- 权限问题:数据目录属主/权限不当会导致 DataNode 启动失败,建议使用专用 hadoop 用户并统一 umask。
以上扩展与排错要点可快速定位常见故障并稳定扩容。