最近部署了spark的rss,使用celeborn,但奇怪的是,按照官方仓库中的方式打包和部署之后,spark任务能正常用celeborn提供的shuffle服务,但是celeborn服务的http端口访问会404,这是少什么东西了嘛?
4条回答 默认 最新
檀越@新空间 2025-07-29 12:46关注中午好🌞🌞🌞
本答案参考通义千问你遇到的问题是:在部署 Spark 的 RSS(Resilient Distributed Shuffle Service)时,使用 Celeborn 作为 shuffle 服务,Spark 任务能够正常运行,但访问 Celeborn 的 HTTP 端口时返回 404 错误。这说明 Celeborn 服务本身可能没有正确启动,或者其 Web 界面未被正确配置或启用。
✅ 原因分析
-
Celeborn 未正确启动
如果 Celeborn 没有成功启动,那么它就不会监听 HTTP 端口,自然无法响应请求。 -
HTTP 端口配置错误
可能你配置的 HTTP 端口与实际启动的端口不一致。 -
Web 界面未启用
在某些版本中,默认可能没有启用 Web 界面,需要手动配置。 -
防火墙/网络问题
有可能是网络策略限制了对 HTTP 端口的访问。 -
日志中存在错误信息
查看 Celeborn 的日志文件,可能会发现更详细的错误原因。
🔧 解决方案
1. 确认 Celeborn 是否已成功启动
-
检查进程是否存在:
ps -ef | grep celeborn -
查看日志文件(通常位于
logs目录下):tail -f logs/celeborn-worker.log tail -f logs/celeborn-master.log重点关注以下内容:
- 是否有
Listening on port的提示。 - 是否出现异常如
Address already in use、Failed to bind等。
- 是否有
2. 检查 HTTP 端口配置是否正确
-
查看
conf/celeborn-defaults.conf文件,确保以下配置项正确:# Master HTTP 端口 celeborn.master.port=19000 # Worker HTTP 端口 celeborn.worker.port=19001 -
如果你访问的是
http://<host>:19000或http://<host>:19001,请确认这些端口是否开放。
3. 确保 Web 界面已启用
-
在
celeborn-defaults.conf中添加或确认以下配置:# 启用 Web UI celeborn.ui.enabled=true # Web UI 端口(默认为 19000) celeborn.ui.port=19000 -
如果启用了 Web UI,Celeborn 应该会在启动时输出类似以下的日志:
[INFO] Starting web UI at http://0.0.0.0:19000
4. 检查网络和防火墙设置
-
确保目标机器的 HTTP 端口(如 19000)在防火墙中是开放的。
sudo ufw allow 19000/tcp -
使用
telnet或nc测试端口是否可达:telnet <host> 19000 # 或 nc -zv <host> 19000
5. 检查 Spark 配置是否正确指向 Celeborn
-
确保在 Spark 的
spark-defaults.conf中设置了正确的 Celeborn 地址:spark.shuffle.service.enabled=true spark.shuffle.service.port=7337 spark.rss.master.url=spark://<master-host>:7337 -
如果你的 Celeborn 是以 Standalone 模式运行,确保
spark.rss.master.url正确指向 Celeborn Master 的地址。
6. 查看 Web UI 页面是否加载成功
-
访问
http://<celeborn-master-ip>:19000,如果页面加载失败,请尝试以下步骤:- 检查浏览器控制台是否有错误(如跨域问题)。
- 尝试使用
curl测试:curl http://<celeborn-master-ip>:19000
📌 总结
| 问题 | 解决方案 | |------|----------| | Celeborn 未启动 | 检查日志,确认服务是否正常启动 | | HTTP 端口错误 | 检查
celeborn-defaults.conf中的端口配置 | | Web UI 未启用 | 在配置文件中设置celeborn.ui.enabled=true| | 网络问题 | 检查防火墙和端口连通性 | | Spark 配置错误 | 确认spark.rss.master.url和spark.shuffle.service.port正确 |
✅ 示例代码片段(修改后的
celeborn-defaults.conf)# Celeborn master configuration celeborn.master.port=19000 celeborn.master.web.port=19000 celeborn.ui.enabled=true celeborn.ui.port=19000 # Celeborn worker configuration celeborn.worker.port=19001 celeborn.worker.web.port=19001 # Shuffle service configuration spark.shuffle.service.enabled=true spark.shuffle.service.port=7337 spark.rss.master.url=spark://<master-host>:7337
如果你仍然无法解决,建议提供以下信息以便进一步排查:
- Celeborn 的版本号
- 完整的日志内容(尤其是启动时的日志)
- 你使用的 Spark 版本
- 你访问的 URL 和返回的完整错误信息
我可以帮助你进一步定位问题!
解决 无用评论 打赏 举报-