在 CentOS 上设置 HDFS 端口,主要是通过修改 Hadoop 的配置文件 来完成的,而不是在 CentOS 系统层面单独设置。下面按常见场景给你说明。
| 组件 | 配置项 | 默认端口 |
|---|---|---|
| NameNode RPC | dfs.namenode.rpc-address |
9000 / 8020 |
| NameNode HTTP | dfs.namenode.http-address |
9870 |
| SecondaryNameNode HTTP | dfs.namenode.secondary.http-address |
9868 |
| DataNode | dfs.datanode.address |
9866 |
| DataNode HTTP | dfs.datanode.http.address |
9864 |
cd $HADOOP_HOME/etc/hadoop
一般是:
cd /usr/local/hadoop/etc/hadoop
hdfs-site.xml编辑文件:
vi hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.rpc-address</name>
<value>0.0.0.0:9000</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>0.0.0.0:9870</value>
</property>
</configuration>
如果是 HA 模式,还需要配置
nameservice和对应的nn1/nn2地址。
core-site.xml(FS 默认端口)vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
fs.defaultFS的端口必须和dfs.namenode.rpc-address一致。
CentOS 7+ 使用 firewalld:
firewall-cmd --permanent --add-port=9000/tcp
firewall-cmd --permanent --add-port=9870/tcp
firewall-cmd --reload
如果是测试环境,也可临时关闭防火墙:
systemctl stop firewalld
stop-dfs.sh
start-dfs.sh
验证:
jps
netstat -tunlp | grep 9000
lsof -i:9000
换一个端口即可。
0.0.0.0setenforce 0
如果你能告诉我:
我可以给你更精确的配置示例。