温馨提示×

HDFS配置Linux要注意什么

小樊
32
2026-07-28 19:26:54
栏目: 智能运维

Linux 上配置 HDFS(Hadoop Distributed File System) 时,既有 通用 Hadoop 注意事项,也有 Linux 系统层面的特殊要求。下面按“常见坑 + 关键配置”来总结,适合生产或学习环境参考。


一、操作系统与用户(非常重要)

1️⃣ 不要使用 root 运行 Hadoop

  • 最佳实践:创建专用用户
useradd hadoop
passwd hadoop
  • hadoop 用户启动 HDFS
  • 否则权限问题、安全风险很大

2️⃣ 主机名 & hosts 配置

HDFS 强烈依赖主机名解析

hostnamectl set-hostname node1

/etc/hosts(每台机器都要一致):

192.168.1.10 node1
192.168.1.11 node2
192.168.1.12 node3

❌ 不建议只配 127.0.0.1 ✅ 使用 静态 IP + 主机名


二、SSH 免密登录(必配)

HDFS 启动依赖 SSH

su - hadoop
ssh-keygen -t rsa
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

✅ 测试:

ssh node2

无需输入密码


三、Java 环境(致命问题集中区)

1️⃣ 版本选择

  • Hadoop 3.x:JDK 8 / JDK 11
  • Hadoop 2.x:JDK 8

❌ 不建议 JDK 17+(兼容性差)

2️⃣ JAVA_HOME 必须正确

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

并在:

  • hadoop-env.sh
  • /etc/profile
  • ~/.bashrc

都配置


四、Hadoop 核心配置文件(重点)

1️⃣ core-site.xml

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

⚠️ NameNode 地址必须一致


2️⃣ hdfs-site.xml(最关键)

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

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

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

⚠️ 注意:

  • 目录权限必须是 hadoop 用户
  • 不要放在 /tmp

3️⃣ workers(Hadoop 3.x)

node1
node2
node3

旧版本叫 slaves


五、Linux 系统级配置(很多人忽略)

1️⃣ 文件句柄数(必调)

HDFS 对文件句柄要求极高

ulimit -n

建议:

* soft nofile 65536
* hard nofile 65536

写入 /etc/security/limits.conf


2️⃣ 禁用 swap(生产必做)

swapoff -a

并在 /etc/fstab 注释 swap


3️⃣ 防火墙 & SELinux

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

❌ 否则 DataNode 可能无法通信


4️⃣ 磁盘目录权限

chown -R hadoop:hadoop /data/hadoop
chmod -R 755 /data/hadoop

六、启动前必做的一件事

格式化 NameNode(仅一次)

hdfs namenode -format

⚠️ 不要反复执行,否则 data 丢失


七、常见错误总结(经验之谈)

问题 原因
NameNode 起不来 JAVA_HOME 错 / 端口占用
DataNode 不显示 多次 format / clusterID 不一致
集群慢 swap 没关
SSH 失败 用户不一致
连接拒绝 防火墙 / hosts 错

八、最简 checklist(对照用)

✅ 专用用户
✅ 静态 IP + 主机名
✅ SSH 免密
✅ JAVA_HOME
✅ 关闭防火墙 / SELinux
✅ 文件句柄调大
✅ 禁用 swap
✅ 正确目录权限
✅ 只格式化一次


如果你愿意,我可以:

  • ✅ 给你 一套完整 HDFS 集群配置示例
  • ✅ 帮你 排错日志(发 NameNode / DataNode 日志)
  • ✅ 按 Hadoop 2 或 Hadoop 3 具体版本说明

只要告诉我你的 Hadoop 版本 + Linux 发行版 即可。

0