温馨提示×

HDFS在Linux中的安装步骤

小樊
35
2025-11-21 00:17:49
栏目: 智能运维

Linux 上安装与部署 HDFS 步骤

一 环境准备

  • 准备至少 3 台 Linux 主机(推荐 CentOS/Ubuntu),规划角色:1 台 NameNode,多台 DataNode,可选 SecondaryNameNode。确保节点间网络互通、主机名可解析(配置 /etc/hosts 或使用 DNS),并统一 NTP 时间同步
  • 在所有节点安装 JDK 8(Hadoop 3.x 常用版本),并配置环境变量(示例:JAVA_HOME、PATH)。
  • 配置 SSH 免密登录:在每台机器生成密钥对,并将公钥分发到所有节点,便于脚本统一启停。
  • 关闭防火墙或放行端口(如 9000、50070、50090),避免节点通信被拦截。

二 安装 Hadoop 并配置环境变量

  • 下载并解压 Hadoop(示例版本 3.3.x)到统一目录(如 /opt/hadoop/usr/local/hadoop-3.3.x):
    • wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
    • tar -xzvf hadoop-3.3.1.tar.gz -C /opt/
  • 配置环境变量(对所有节点生效):
    • 编辑 ~/.bashrc/etc/profile,加入:
      • export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
      • export HADOOP_HOME=/opt/hadoop-3.3.1
      • export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    • 使配置生效:source ~/.bashrc 或 source /etc/profile
  • $HADOOP_HOME/etc/hadoop/hadoop-env.sh 中显式设置 JAVA_HOME,避免脚本找不到 Java。

三 配置 HDFS 核心文件

  • 编辑 $HADOOP_HOME/etc/hadoop/core-site.xml
    • 指定默认文件系统与端口:
      • fs.defaultFShdfs://namenode:9000
    • 可选:指定临时目录 hadoop.tmp.dir/opt/hadoop/data/tmp
  • 编辑 $HADOOP_HOME/etc/hadoop/hdfs-site.xml
    • 副本数与本地存储目录:
      • dfs.replication3
      • dfs.namenode.name.dir/opt/hadoop/data/namenode
      • dfs.datanode.data.dir/opt/hadoop/data/datanode
    • 可选:配置 SecondaryNameNode
      • dfs.namenode.secondary.http-addresssecondary:50090
  • 配置从节点列表(Hadoop 2.x 使用 slaves;Hadoop 3.x 使用 workers):
    • 将所有 DataNode 主机名逐行写入 $HADOOP_HOME/etc/hadoop/workers(或 slaves)。

四 启动与验证

  • NameNode 上格式化文件系统:
    • hdfs namenode -format
  • 启动 HDFS(在 NameNode 执行):
    • start-dfs.sh
  • 验证进程与集群状态:
    • jps 查看进程(应见到 NameNode/DataNode/SecondaryNameNode
    • hdfs dfsadmin -report 查看 Live/Dead Nodes 与容量
    • 浏览器访问 http://namenode:50070 查看 NameNode Web UI
  • 基本文件操作测试:
    • hdfs dfs -mkdir -p /user/root
    • hdfs dfs -ls /

五 常见问题与高可用扩展

  • 常见问题排查
    • 节点无法启动或 Live Nodes 为 0:检查 SSH 免密是否双向生效、各节点 workers/slaves 配置是否一致、防火墙/安全组端口是否放行。
    • 多次格式化导致 DataNode 与 NameNode 不一致:清理 dfs.namenode.name.dir/dfs.datanode.data.dir 下的数据目录后再格式化,或统一分发干净的配置与安装目录。
    • 端口或主机名不通:核对 /etc/hosts、网络连通性与端口占用。
  • 高可用扩展(可选)
    • 生产环境建议启用 QJM HA:部署 ZooKeeperZKFC,配置 dfs.nameservices、dfs.ha.namenodes、dfs.namenode.rpc-address、dfs.client.failover.proxy.provider 等参数,实现 Active/Standby 自动故障转移。

0