温馨提示×

Ubuntu HDFS应用如何部署

小樊
41
2025-12-06 23:00:56
栏目: 智能运维

Ubuntu 上部署 HDFS 的完整步骤

一 环境准备与规划

  • 准备至少 1 台 Ubuntu 20.04/22.04 主机(单机用于学习,多台用于生产/集群)。
  • 安装基础工具与 Java(Hadoop 3.x 建议使用 OpenJDK 8 或 11):
    sudo apt update && sudo apt install -y openssh-server vim
    sudo apt install -y openjdk-11-jdk # 或 openjdk-8-jdk
    java -version
  • 创建专用用户(推荐):
    sudo adduser hadoop && sudo usermod -aG sudo hadoop
  • 规划主机名与网络:
    • 单机:使用 localhost
    • 集群:规划 NameNode、DataNode 主机名与 静态 IP,并在所有节点配置 /etc/hosts 解析
  • 时间同步(集群强烈建议):
    sudo apt install -y ntpdate && sudo ntpdate cn.pool.ntp.org
  • 防火墙与端口:确保节点间可互通,开放 HDFS 相关端口(如 9000、50070 等)

二 安装与配置 Hadoop 与 HDFS

  • 下载并解压 Hadoop(示例版本 3.3.6,可按需调整):
    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 -s /usr/local/hadoop-3.3.6 /usr/local/hadoop
  • 配置环境变量(所有节点):
    echo ‘export HADOOP_HOME=/usr/local/hadoop’ | sudo tee -a /etc/profile
    echo ‘export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin’ | sudo tee -a /etc/profile
    echo ‘export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64’ | sudo tee -a /etc/profile # 路径以本机为准
    source /etc/profile
  • 核心配置(路径:$HADOOP_HOME/etc/hadoop)
    • core-site.xml(单机示例):
      fs.defaultFShdfs://localhost:9000 hadoop.tmp.dir/usr/local/hadoop/tmp
    • hdfs-site.xml(单机示例):
      dfs.replication1 dfs.namenode.name.dir/usr/local/hadoop/hdfs/namenode dfs.datanode.data.dir/usr/local/hadoop/hdfs/datanode
    • 集群请将 fs.defaultFS 改为 hdfs://namenode:9000,并相应调整目录与副本数(如 dfs.replication=3)。

三 启动与验证

  • 创建数据目录并赋权:
    sudo mkdir -p /usr/local/hadoop/hdfs/{namenode,datanode}
    sudo chown -R hadoop:hadoop /usr/local/hadoop/hdfs
  • 首次格式化 NameNode(仅首次):
    sudo -u hadoop hdfs namenode -format
  • 启动 HDFS:
    sudo -u hadoop start-dfs.sh
  • 基础验证:
    hdfs dfs -ls /
    hdfs dfsadmin -report
    jps # 应看到 NameNode/DataNode 进程
  • Web 界面:访问 http://:50070 查看 HDFS 状态。

四 集群扩展与运维要点

  • SSH 免密登录(NameNode 到所有 DataNode):
    sudo -u hadoop ssh-keygen -t rsa -P ‘’
    sudo -u hadoop ssh-copy-id hadoop@
  • 配置文件分发:保持 core-site.xml、hdfs-site.xml 等在所有节点一致;新增 DataNode 后同步配置并启动:
    hdfs --daemon start datanode
  • 常用运维:
    • 查看集群与存储:hdfs dfsadmin -report
    • 查看日志:tail -f $HADOOP_HOME/logs/hadoop--namenode-.log
    • 端口与安全:开放 9000/50070 等端口;生产可启用 Kerberos 认证。

五 应用接入与常见问题

  • 应用接入方式:
    • 命令行:hdfs dfs -put /local/file /user/hadoop/
    • Java API:使用 Hadoop CommonHDFS Client 依赖,通过 hdfs://namenode:9000 访问
  • 常见问题速查:
    • 无法访问 50070:检查防火墙、NameNode 是否启动、主机名/IP 是否正确
    • DataNode 未注册:检查 dfs.datanode.data.dir 权限、磁盘空间、NameNode/DataNode 配置一致性
    • SSH 免密失败:确认 ~/.ssh/authorized_keys 已分发、权限为 600/700
    • 格式化报错:确保 hadoop.tmp.dir 目录可写,必要时清理后重新格式化(会清空元数据,谨慎操作)

0