Debian如何部署HDFS集群
小樊
34
2025-12-27 01:24:23
在 Debian 上部署 HDFS 集群
一 环境准备与规划
- 节点与角色
- NameNode ×1:HDFS 元数据管理与命名空间
- DataNode ×N:实际数据块存储
- 可选:SecondaryNameNode ×1(建议与 NameNode 不同主机)
- 软件与系统
- Debian 稳定版
- Java 8 或 11(Hadoop 3.x 推荐 8 或 11)
- SSH 服务 与 免密登录(用于集群启停与节点间通信)
- 网络与主机名
- 建议配置 静态 IP 与 /etc/hosts 解析所有节点主机名
- 示例:192.168.1.100 master、192.168.1.101 node1、192.168.1.102 node2
- 目录规划(示例)
- 安装目录:/usr/local/hadoop-3.3.6
- 数据与日志:/opt/hadoop/hdfs/{name,data}、/opt/hadoop/logs
- 版本建议
- 选用稳定版 Hadoop 3.3.x(如 3.3.6)
二 安装与基础配置
- 安装 Java
- 安装 OpenJDK 11(或 8):sudo apt update && sudo apt install -y openjdk-11-jdk
- 验证:java -version
- 创建专用用户与目录
- sudo adduser hadoop;sudo usermod -aG sudo hadoop
- sudo mkdir -p /opt/hadoop/hdfs/{name,data} /opt/hadoop/logs
- 下载并解压 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
- sudo ln -sfn /usr/local/hadoop-3.3.6 /usr/local/hadoop
- 环境变量(推荐写入 /etc/profile.d/hadoop.sh)
- export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
- export HADOOP_HOME=/usr/local/hadoop
- export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 使生效:source /etc/profile
- 配置 SSH 免密登录(以 hadoop 用户)
- ssh-keygen -t rsa -b 4096
- ssh-copy-id hadoop@master;ssh-copy-id hadoop@node1;ssh-copy-id hadoop@node2
- 配置 /etc/hosts(所有节点)
- 127.0.0.1 localhost
- 192.168.1.100 master
- 192.168.1.101 node1
- 192.168.1.102 node2
三 HDFS 核心配置
- 配置 hadoop-env.sh
- 在 $HADOOP_HOME/etc/hadoop/hadoop-env.sh 中设置:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
- core-site.xml(所有节点)
-
fs.defaultFS
hdfs://**master:9000**
- hdfs-site.xml(所有节点)
-
dfs.replication
- **3**(生产建议 3;单机测试可改为 1)
dfs.namenode.name.dir
file:///**/opt/hadoop/hdfs/namenode**
dfs.datanode.data.dir
file:///**/opt/hadoop/hdfs/data**
- workers(旧版为 slaves,位于 $HADOOP_HOME/etc/hadoop/)
- 目录权限(以 hadoop 用户执行)
- sudo chown -R hadoop:hadoop /opt/hadoop /usr/local/hadoop-3.3.6
四 启动与验证
- 格式化 NameNode(仅在 master 首次启动时执行)
- 启动 HDFS
- start-dfs.sh(在 master 执行)
- 验证进程
- jps(在对应节点应看到:NameNode/DataNode/SecondaryNameNode)
- 访问 Web UI
- HDFS NameNode Web:http://master:9870(Hadoop 3.x 默认端口)
- 如需 YARN:start-yarn.sh;ResourceManager:http://master:8088
- 基本 HDFS 操作
- hdfs dfs -ls /
- hdfs dfs -mkdir -p /test
- hdfs dfs -put /etc/hosts /test
- hdfs dfs -cat /test/hosts
五 常见问题与加固建议
- 时间与防火墙
- 建议 NTP 同步时间;开放端口:9000(HDFS RPC)、9870(NameNode Web)、以及 YARN 8088 等
- SSH 与权限
- 确保 SSH 免密 在集群内互通;Hadoop 目录与数据目录属主为 hadoop
- 目录与存储
- dfs.datanode.data.dir 建议使用独立磁盘或挂载点;避免单点磁盘瓶颈
- 副本与容量
- 生产环境 dfs.replication=3;确保集群总容量与副本策略匹配业务冗余需求
- 高可用与扩展
- 生产可部署 HA(QJM/ZKFC) 与 JournalNode;横向扩展 DataNode 即可扩容存储