温馨提示×

Linux HDFS配置要注意啥

小樊
41
2026-08-25 02:07:33
栏目: 智能运维

在 Linux 上配置 HDFS(Hadoop Distributed File System) 时,有几个非常关键的点容易踩坑,下面按部署前 → 配置中 → 启动后给你一个实用清单。


一、部署前要注意的问题

1️⃣ 主机名与 IP 必须稳定

  • 不要频繁变动 IP
  • 建议使用 静态 IP
  • /etc/hosts 必须配置正确(所有节点一致)
192.168.1.10  master
192.168.1.11  slave1
192.168.1.12  slave2

⚠️ 不要只写 localhost


2️⃣ 防火墙 & SELinux

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 关闭 SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

如果不关,HDFS 端口可能被拦。


3️⃣ SSH 免密登录(必须)

NameNode 需要通过 SSH 启动 DataNode。

ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

✅ 测试:

ssh slave1

4️⃣ Java 环境

  • JDK 8 或 11(推荐 8)
  • 不要用 OpenJDK 的奇怪版本
java -version

hadoop-env.sh 中必须指定:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk

二、HDFS 核心配置要点(重点)

1️⃣ core-site.xml

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

⚠️ 注意:

  • master 必须能被解析
  • 端口不要冲突(9000 常见)

2️⃣ hdfs-site.xml(最容易出错)

NameNode 目录

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

DataNode 目录

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

注意

  • 目录必须 提前创建
  • 权限必须属于运行 Hadoop 的用户
mkdir -p /data/hadoop/dfs/{name,data}
chown -R hadoop:hadoop /data/hadoop

3️⃣ 副本数(新手必踩)

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

⚠️ 副本数 不能大于 DataNode 数量


4️⃣ 是否启用权限检查(测试环境建议关)

<property>
  <name>dfs.permissions.enabled</name>
  <value>false</value>
</property>

三、第一次启动 HDFS 必须做的事

✅ 格式化 NameNode(只做一次!)

hdfs namenode -format

⚠️ 不要重复执行,否则 DataNode 会无法注册


✅ 启动 HDFS

start-dfs.sh

确认进程:

jps

应看到:

  • NameNode
  • SecondaryNameNode
  • DataNode

四、常见错误 & 排查

❌ DataNode 没起来

原因通常是:

  • dfs.datanode.data.dir 不存在
  • 权限不对
  • 多次 format NameNode

✅ 解决:

rm -rf /data/hadoop/dfs/data/*
hdfs namenode -format

❌ 无法访问 Web UI

  • NameNode UI:http://master:9870
  • 检查防火墙
  • 检查 fs.defaultFS

❌ 磁盘空间不足

HDFS 默认会写满磁盘
建议:

<property>
  <name>dfs.datanode.du.reserved</name>
  <value>10737418240</value> <!-- 10GB -->
</property>

五、生产环境额外注意

✅ 高可用(HA)

  • 使用 ZooKeeper
  • 配置 dfs.ha.namenodes

✅ 安全

  • 启用 Kerberos
  • 不要 root 运行 Hadoop

✅ 磁盘

  • 多块盘做 dfs.datanode.data.dir
  • 避免单盘故障

六、快速检查清单 ✅

  • [ ] 静态 IP + hosts
  • [ ] SSH 免密
  • [ ] Java 环境
  • [ ] 目录权限
  • [ ] 副本数合理
  • [ ] 只 format 一次
  • [ ] 防火墙关闭

如果你愿意,可以告诉我:

  • 单机 / 伪分布式 / 完全分布式
  • Hadoop 版本
  • 报错日志

我可以直接帮你对着配置改 ✅

0