温馨提示×

linux hdfs配置需要注意什么

小樊
45
2026-09-07 14:21:48
栏目: 智能运维

在 Linux 上配置 HDFS(Hadoop Distributed File System) 时,有很多细节容易踩坑。下面从系统环境、用户权限、网络、配置文件、目录权限、常见坑几个方面总结注意事项。


一、系统与基础环境

1. Java 环境

  • HDFS 依赖 JDK(推荐 JDK 8 或 11,视 Hadoop 版本而定)
  • 必须配置:
export JAVA_HOME=/usr/java/jdk1.8.0_xxx
export PATH=$JAVA_HOME/bin:$PATH
  • 验证:
java -version

2. 主机名与 hosts

  • 不要使用 localhost 作为集群节点名
  • 所有节点 /etc/hosts 必须一致:
192.168.1.10 namenode
192.168.1.11 datanode1
192.168.1.12 datanode2
  • 主机名:
hostname

二、用户与权限(非常重要)

1. 专用用户

  • 建议使用非 root 用户运行 HDFS(如 hadoop
useradd hadoop

2. SSH 免密登录

  • NameNode 必须能免密 SSH 到所有 DataNode
ssh-keygen -t rsa
ssh-copy-id hadoop@datanode1

3. 目录权限

  • NameNode / DataNode 数据目录必须属于运行用户
chown -R hadoop:hadoop /data/hadoop
  • 常见错误:
Permission denied

三、核心配置文件(重点)

通常在 $HADOOP_HOME/etc/hadoop/

1. core-site.xml

<property>
  <name>fs.defaultFS</name>
  <value>hdfs://namenode:9000</value>
</property>

⚠ 注意:

  • 端口不要冲突
  • NameNode 主机名必须可解析

2. hdfs-site.xml

NameNode

<property>
  <name>dfs.namenode.name.dir</name>
  <value>/data/hadoop/namenode</value>
</property>

DataNode

<property>
  <name>dfs.datanode.data.dir</name>
  <value>/data/hadoop/datanode</value>
</property>

副本数

<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>

⚠ 注意:

  • 单节点测试时设为 1
  • 目录必须提前创建

3. workers(旧版 slaves)

datanode1
datanode2

四、防火墙与网络

1. 关闭或放行端口

常见端口:

  • 9000(HDFS)
  • 50070(Web UI,老版本)
  • 9870(Web UI,Hadoop 3+)
systemctl stop firewalld

或放行:

firewall-cmd --add-port=9870/tcp --permanent

2. 时间同步

  • 集群节点时间必须一致
ntpdate cn.pool.ntp.org

五、格式化与启动

1. 首次必须格式化 NameNode

hdfs namenode -format

⚠ 注意:

  • 只能格式化一次
  • 重复格式化会导致 DataNode 无法注册

2. 启动

start-dfs.sh

3. 验证

hdfs dfsadmin -report

Web:

http://namenode:9870

六、常见坑总结

问题 原因
DataNode 不显示 多次格式化 NameNode
Permission denied 目录权限不对
Cannot assign address hosts / 主机名错误
Safe mode 刚启动或磁盘异常
端口被占用 防火墙或别的进程

七、生产环境建议

  • 数据盘单独挂载
  • NameNode 做 HA(ZKFC + JournalNode)
  • 禁用 swap
  • 调整 JVM 内存参数
  • 开启审计日志

如果你愿意,我可以:

  • 给你一份 单节点 HDFS 配置示例
  • 生产级 HDFS HA 配置方案
  • 或针对你当前的 报错日志 具体分析

你可以直接说你用的是 Hadoop 几版本 + 单节点还是集群

0