温馨提示×

Ubuntu HDFS如何启动配置

小樊
37
2025-12-14 20:34:38
栏目: 智能运维

Ubuntu 上 HDFS 的启动与配置指南

一 环境准备

  • 安装 Java(任选其一,建议 OpenJDK 8 或 11):
    • OpenJDK 8:sudo apt update && sudo apt install openjdk-8-jdk
    • OpenJDK 11:sudo apt update && sudo apt install openjdk-11-jdk
    • 验证:java -version
  • 下载并解压 Hadoop(示例版本 3.3.x):
    • wget https://downloads.apache.org/hadoop/core/hadoop-3.3.4/hadoop-3.3.4.tar.gz
    • tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
    • 建议软链:sudo ln -s /usr/local/hadoop-3.3.4 /usr/local/hadoop
  • 配置环境变量(~/.bashrc 或 /etc/profile):
    • export HADOOP_HOME=/usr/local/hadoop
    • export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    • 使生效:source ~/.bashrc
  • 配置 SSH 免密(单机伪分布式也建议配置,便于启动脚本无交互执行):
    • ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
    • cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    • 验证:ssh localhost 无需密码

二 核心配置

  • 配置 Hadoop 环境脚本($HADOOP_HOME/etc/hadoop/hadoop-env.sh):
    • 设置 JAVA_HOME(按实际路径):export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
  • 配置核心文件($HADOOP_HOME/etc/hadoop/core-site.xml):
    • 单机/伪分布式常用:
      • fs.defaultFShdfs://localhost:9000
      • hadoop.tmp.dir/usr/local/hadoop/tmp
  • 配置 HDFS($HADOOP_HOME/etc/hadoop/hdfs-site.xml):
    • 单机/伪分布式常用:
      • dfs.replication1
      • dfs.namenode.name.dirfile:///usr/local/hadoop/tmp/dfs/name
      • dfs.datanode.data.dirfile:///usr/local/hadoop/tmp/dfs/data
  • 创建数据目录并授权(示例以 hadoop 用户为例):
    • sudo mkdir -p /usr/local/hadoop/tmp/dfs/{name,data}
    • sudo chown -R hadoop:hadoop /usr/local/hadoop/tmp

三 启动与验证

  • 首次启动前格式化 NameNode(仅首次):
    • hdfs namenode -format
  • 启动 HDFS:
    • start-dfs.sh
  • 验证进程:
    • jps 应看到:NameNodeDataNode、(单机/伪分布式常见)SecondaryNameNode
  • Web 界面:
    • HDFS NameNode:http://localhost:50070
  • 常用 HDFS 操作测试:
    • hdfs dfs -mkdir -p /user/test
    • hdfs dfs -put /etc/hosts /user/test/hosts
    • hdfs dfs -ls /user/test
    • hdfs dfsadmin -report(查看集群状态)

四 常见问题与排查

  • 端口与防火墙(若远程访问):
    • 放行端口:sudo ufw allow 9000,50070(按需开放)
  • SSH 免密失败导致启动脚本卡住:
    • 确认 master 能 ssh 免密登录所有节点(含本机):ssh slave1、ssh slave2
  • 目录权限或路径错误:
    • 确保 dfs.namenode.name.dirdfs.datanode.data.dir 目录存在且属主正确
    • 修改路径后需重启:stop-dfs.sh && start-dfs.sh
  • 多次格式化导致 DataNode 无法注册:
    • 清理 dfs.datanode.data.dir 下 VERSION 等数据后重启,或调整 dfs.datanode.data.dir 为新路径再启动

五 扩展 全分布式快速要点

  • 规划主机与 IP(示例):
    • master 192.168.1.10slave1 192.168.1.20slave2 192.168.1.30
  • 所有节点配置 /etc/hosts 主机名映射,统一 /etc/hostname
  • 所有节点安装 JDK 与 Hadoop,配置相同环境变量
  • 仅在 master 生成密钥并分发公钥到所有节点,实现 SSH 免密互通
  • 配置 $HADOOP_HOME/etc/hadoop/workers(旧版为 slaves):写入 slave1slave2
  • 配置 core-site.xml:fs.defaultFS=hdfs://master:9000
  • 配置 hdfs-site.xml:dfs.replication=3(生产建议 3 副本)
  • 仅在 master 执行:hdfs namenode -format,随后 start-dfs.sh
  • 访问 Web:NameNode http://master:50070

0