温馨提示×

HDFS在CentOS上如何正确配置

小樊
33
2025-12-19 19:50:05
栏目: 智能运维

在 CentOS 上配置 HDFS 的正确步骤

一 环境准备

  • 操作系统建议使用 CentOS 7/8,更新系统并安装基础工具:sudo yum update -y && sudo yum install -y wget tar openssh-server openssh-clients。
  • 安装 Java 8(Hadoop 3.x 常用):sudo yum install -y java-1.8.0-openjdk-devel;验证:java -version。
  • 配置 SSH 免密登录(单机伪分布式也建议配置,便于启动脚本):ssh-keygen -t rsa -P “”,cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys;如需多机部署,将公钥分发到各节点。
  • 配置 主机名与 hosts:编辑 /etc/hosts,确保 namenode 与 datanode 主机名可解析
  • 防火墙放行端口或临时关闭:firewall-cmd --permanent --add-port=9000/tcp; firewall-cmd --permanent --add-port=50070/tcp; firewall-cmd --reload(或 systemctl stop firewalld 仅测试环境)。

二 安装与环境变量

  • 下载并解压 Hadoop(示例版本 3.3.1):
    wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
    tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local/
    sudo mv /usr/local/hadoop-3.3.1 /usr/local/hadoop
  • 设置环境变量(推荐写入 /etc/profile.d/hadoop.sh):
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
    export HADOOP_HOME=/usr/local/hadoop
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    使生效:source /etc/profile.d/hadoop.sh
  • 在 $HADOOP_HOME/etc/hadoop/hadoop-env.sh 中显式设置:export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk。

三 核心配置

  • 配置 $HADOOP_HOME/etc/hadoop/core-site.xml:
    fs.defaultFS hdfs://namenode:9000 hadoop.tmp.dir /usr/local/hadoop/tmp
  • 配置 $HADOOP_HOME/etc/hadoop/hdfs-site.xml(单机伪分布式示例,副本数设为 1):
    dfs.replication 1 dfs.namenode.name.dir /usr/local/hadoop/data/namenode dfs.datanode.data.dir /usr/local/hadoop/data/datanode
  • 多机部署要点:将 fs.defaultFS 指向 namenode 主机名:9000;各节点的 dfs.namenode.name.dir 与 dfs.datanode.data.dir 使用本地绝对路径;确保 所有节点 hadoop.tmp.dir 一致 且目录可写。

四 启动与验证

  • 首次启动前格式化 NameNode:hdfs namenode -format(仅首次)。
  • 启动 HDFS:start-dfs.sh;如需 YARN 可再执行 start-yarn.sh。
  • 进程检查:jps,应看到 NameNode、DataNode(及 SecondaryNameNode/ResourceManager/NodeManager 等,视配置而定)。
  • Web 界面:访问 http://<namenode_ip>:50070 查看 HDFS 状态;YARN 为 http://<resourcemanager_ip>:8088
  • 基本操作验证:
    hdfs dfs -mkdir -p /user/test
    hdfs dfs -put /etc/hosts /user/test
    hdfs dfs -ls /user/test。

五 常见问题与关键参数优化

  • 目录与权限:确保 namenode/datanode 数据目录 存在且属运行用户;生产建议启用权限:dfs.permissions.enabled=true。
  • 关键参数建议:
    • 块大小:dfs.blocksize=134217728(即 128MB,Hadoop 2.6+ 默认值)。
    • 副本数:dfs.replication 生产常用 3(单机测试用 1)。
    • NameNode 并发:dfs.namenode.handler.count 可按集群规模调优,经验值约为 20·log(N)
    • DataNode 传输线程:dfs.datanode.max.transfer.threads(旧名 dfs.datanode.max.xcievers)建议 8192
    • 磁盘保留:dfs.datanode.du.reserved 每盘建议预留 10GB,避免磁盘被 MapReduce 写满。
    • 回收站:core-site.xml 中设置 fs.trash.interval=1440(分钟),误删可恢复。
  • 时间同步:集群节点建议启用 NTP 同步,避免 NameNode/DataNode 心跳异常。
  • 防火墙与端口:生产环境不建议直接关闭防火墙,按需放行 9000、50070、50075、50090 等端口。

0