Hadoop Web控制台数据获取失败及进程启动异常求助
解决Hadoop Web控制台WebHDFS请求失败问题
核心问题排查
从输出看,Hadoop守护进程(NameNode、DataNode、SecondaryNameNode)虽显示运行,但WebHDFS接口返回Server Error,主要可能是进程僵死异常、Java版本不兼容或配置错误导致。
分步解决方案
1. 彻底重置Hadoop进程
当前进程提示已运行但状态异常,需强制清理后重启:
# 停止所有Hadoop进程 stop-all.sh # 手动杀死残留进程(替换为你的进程ID) kill -9 22733 22866 23072 # 删除pid文件 rm -rf /tmp/hadoop-vijay-namenode.pid /tmp/hadoop-vijay-datanode.pid /tmp/hadoop-vijay-secondarynamenode.pid # 清理临时数据目录(注意:若有重要数据请先备份) rm -rf /tmp/hadoop-vijay* # 重新格式化NameNode hdfs namenode -format # 启动所有进程 start-all.sh
2. 切换兼容的Java版本
Hadoop 3.3.4官方仅支持Java 8和Java 11,你使用的Java 19属于非兼容版本,会导致底层API调用失败:
- 安装OpenJDK 11:
sudo apt update && sudo apt install openjdk-11-jdk -y
- 配置环境变量(编辑
~/.bashrc):
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH
- 生效配置并验证:
source ~/.bashrc java -version
3. 验证WebHDFS配置
检查$HADOOP_HOME/etc/hadoop/core-site.xml,确保文件系统地址正确:
<property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property>
检查$HADOOP_HOME/etc/hadoop/hdfs-site.xml,确保WebHDFS已启用:
<property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property>
修改配置后需重启Hadoop。
4. 检查端口与网络
- 测试WebHDFS接口连通性:
curl http://localhost:9870/webhdfs/v1/?op=LISTSTATUS
- 放行必要端口(若防火墙开启):
sudo ufw allow 9870/tcp sudo ufw allow 9000/tcp
- 检查端口占用:
netstat -tulpn | grep -E "9870|9000"
验证操作
重启后执行jps确认所有守护进程正常运行,再访问http://localhost:9870测试Web控制台的WebHDFS功能。
内容的提问来源于stack exchange,提问作者vijays
相关产品推荐
相关产品推荐

