Apache Druid单机部署启动Historical Server遇No known server异常求助
你在单机部署Druid快速入门环境时碰到的这个异常,大概率是Historical节点无法连接到Coordinator节点导致的,毕竟Historical得依赖Coordinator获取元数据和任务指令。我给你整理几个排查和解决的方向:
1. 先确认Coordinator Server是否正常运行
Druid的节点启动是有依赖顺序的,Historical必须等Coordinator起来才能正常工作:
- 用
ps aux | grep coordinator命令检查Coordinator进程是否存在 - 也可以访问Coordinator默认控制台端口
8081,看看页面能不能正常打开
如果Coordinator没启动,先按快速入门步骤启动它:
java `cat conf-quickstart/druid/coordinator/jvm.config | xargs` \ -cp "conf-quickstart/druid/_common:conf-quickstart/druid/coordinator:lib/*" \ io.druid.cli.Main server coordinator
2. 检查Historical配置里的Coordinator地址是否正确
打开conf-quickstart/druid/historical/runtime.properties文件,找到druid.coordinator.service.host配置项,单机部署的话这个值应该是localhost或者127.0.0.1,同时确认druid.coordinator.service.port和Coordinator配置的端口(默认8081)保持一致。
3. 排查端口占用问题
如果Coordinator已经启动但Historical还是连不上,可能是8081端口被其他程序占用了:
- 用
lsof -i :8081或者netstat -tulpn | grep 8081检查端口占用情况 - 如果端口被占,要么停止占用端口的程序,要么同步修改Coordinator和Historical配置里的端口号
4. 查看完整日志定位细节
你只提供了部分堆栈信息,建议查看Historical的完整日志(默认路径var/log/druid/historical.log),里面会有更具体的连接失败原因,比如连接超时、被拒绝等,能帮你更快锁定问题。
另外提个小建议:单机部署Druid时,最好按官方推荐的顺序启动节点:先启动ZooKeeper,接着是Coordinator、Overlord,再启动MiddleManager、Historical,最后启动Broker,这样能避免很多依赖类的启动问题。
内容的提问来源于stack exchange,提问作者Rahul Sharma

