温馨提示×

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 进行监控与告警。

0