Hadoop 3.3.4 WebHDFS配置及SSL启用问题:curl连接被拒
Hadoop 3.3.4 WebHDFS连接失败的缺失配置排查
首先,你遇到的连接拒绝问题最核心的原因是Hadoop 3.x版本已将NameNode的HTTP默认端口从50070改为9870,继续用旧端口访问自然无法连接。除此之外,结合你要启用WebHDFS和SSL的需求,还需要补充以下配置:
一、WebHDFS基础配置补全
在hdfs-site.xml中需确保以下配置项(若未添加则补充):
<configuration> <!-- 保留你原有配置 --> <property> <name>dfs.namenode.http-address</name> <value>0.0.0.0:9870</value> <!-- 绑定所有网卡允许外部访问,也可设为localhost:9870 --> </property> <property> <name>dfs.datanode.http-address</name> <value>0.0.0.0:9864</value> <!-- Hadoop 3.x中DataNode的HTTP默认端口为9864 --> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration>
修改后重启NameNode和DataNode服务,之后用正确端口执行curl命令:
curl -ki "http://localhost:9870/webhdfs/v1/tmo?op=GETFILESTATUS"
二、SSL功能启用配置
如果要为WebHDFS开启SSL,还需在hdfs-site.xml中添加HTTPS相关配置:
<property> <name>dfs.https.enable</name> <value>true</value> </property> <property> <name>dfs.namenode.https-address</name> <value>0.0.0.0:9871</value> <!-- NameNode HTTPS默认端口为9871 --> </property> <property> <name>dfs.datanode.https-address</name> <value>0.0.0.0:9865</value> <!-- DataNode HTTPS默认端口为9865 --> </property> <!-- 需提前用keytool生成合法SSL证书,配置密钥库相关信息 --> <property> <name>dfs.https.keystore.path</name> <value>/path/to/your/keystore.jks</value> </property> <property> <name>dfs.https.keystore.password</name> <value>your_keystore_password</value> </property> <property> <name>dfs.https.truststore.path</name> <value>/path/to/your/truststore.jks</value> </property> <property> <name>dfs.https.truststore.password</name> <value>your_truststore_password</value> </property>
配置完成后需重启所有HDFS服务,确保SSL证书路径和密码与实际一致。
三、额外检查项
- 执行
jps命令确认NameNode(NameNode进程)和DataNode(DataNode进程)已正常启动 - 检查防火墙是否放行9870(或9871)端口,避免端口被拦截
内容的提问来源于stack exchange,提问作者Ufder
相关产品推荐
相关产品推荐

