温馨提示×

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 master192.168.1.101 node1192.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/
    • 列出所有 DataNode 主机名,每行一个:
      • node1
      • node2
  • 目录权限(以 hadoop 用户执行)
    • sudo chown -R hadoop:hadoop /opt/hadoop /usr/local/hadoop-3.3.6

四 启动与验证

  • 格式化 NameNode(仅在 master 首次启动时执行)
    • hdfs namenode -format
  • 启动 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 即可扩容存储

0