温馨提示×

centos hdfs怎样配域名

小樊
51
2026-10-12 06:03:22
栏目: 云计算

在 CentOS 上给 HDFS 配置“域名”(通常是用主机名代替 IP),一般分三步:DNS/Hosts 解析 → Hadoop 配置 → 防火墙/重启。下面以 单 NameNode + 多 DataNode 为例说明。


一、先让 CentOS 能解析域名(重点)

HDFS 并不负责 DNS,它只是用你配置的 hostname 去连机器,所以机器必须能解析。

方式 1(最常用):/etc/hosts

所有节点都改:

vi /etc/hosts

示例:

192.168.1.10  nn1.hadoop.com  nn1
192.168.1.11  dn1.hadoop.com  dn1
192.168.1.12  dn2.hadoop.com  dn2

✅ 每个节点都要有完整 hosts

方式 2(生产推荐):DNS 服务器

如果你有内网 DNS,直接配置 A 记录即可,不需要 hosts。


二、Hadoop 配置使用域名(不是 IP)

1️⃣ core-site.xml

<property>
  <name>fs.defaultFS</name>
  <name>hdfs://nn1.hadoop.com:9000</name>
</property>

2️⃣ hdfs-site.xml

<property>
  <name>dfs.namenode.rpc-address</name>
  <value>nn1.hadoop.com:9000</value>
</property>

<property>
  <name>dfs.namenode.http-address</name>
  <value>nn1.hadoop.com:9870</value>
</property>

3️⃣ workers(旧版 slaves)

dn1.hadoop.com
dn2.hadoop.com

三、主机名本身也要对(容易踩坑)

查看当前主机名

hostname

修改主机名(CentOS 7+)

hostnamectl set-hostname nn1.hadoop.com

⚠️ hostname 必须和 hosts / DNS 中一致


四、防火墙 & SELinux(否则连不上)

systemctl stop firewalld
systemctl disable firewalld

或开放端口:

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

五、启动并验证

start-dfs.sh

浏览器访问:

http://nn1.hadoop.com:9870

命令行:

hdfs dfs -ls /

六、常见坑总结

❌ 只用 IP 启动,后来改域名 → 要重新格式化或清 data ❌ hosts 只配 NameNode,DataNode 没配 → 注册失败 ❌ hostname 和配置不一致 → DataNode 不在线 ❌ 防火墙没关 → RPC 超时


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

  • CentOS 版本
  • Hadoop 版本(2.x / 3.x)
  • 单节点还是集群

我可以给你一套可直接复制的配置文件。

0 踩