You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows7下Apache Drill 1.13.0嵌入式模式无法访问控制台及命令行

Apache Drill 1.13.0嵌入式模式"no current connection"及Web控制台无法访问问题排查与解决

我来帮你分析并解决这个Apache Drill嵌入式模式的问题:

问题场景

我在Windows 7系统中使用嵌入式模式(embedded mode)的Apache Drill 1.13.0时遇到以下问题:

  • 执行任何查询时均提示"no current connection"错误
  • 本该运行在localhost:8047的Drill Web控制台也无法访问
  • 已尝试使用jps工具检查进程,也试过访问localhost:12080,但问题仍未解决

相关问题截图

核心错误分析

从你提供的Drill日志里,我发现了导致问题的关键原因:

2018-06-29 13:09:21,673 [main] WARN o.a.drill.exec.util.GuavaPatcher - Unable to patch Guava classes. javassist.CannotCompileException: by java.lang.LinkageError: loader (instance of sun/misc/Launcher$AppClassLoader): attempted duplicate class definition for name: "com/google/common/base/Stopwatch"

这个报错说明Drill在初始化时,尝试修补Guava库的Stopwatch类失败了——类加载器已经加载过这个类,导致重复定义冲突。这种冲突会直接阻碍Drillbit(Drill的核心服务进程)正常启动,自然就会出现连接失败、Web控制台无法访问的问题。

解决方案步骤

1. 先确认Java版本兼容性

Apache Drill 1.13.0只支持Java 8(推荐Update 101及以上版本),Java 9及更高版本是不兼容的。你可以打开命令提示符,执行:

java -version

如果你的Java版本低于8u101,或者用了Java 9+,先升级到符合要求的Java 8版本。

2. 修复Guava类冲突问题

针对这个类重复定义的错误,有两种可行的解决方法:

方法一:禁用Guava自动修补功能

找到Drill安装目录下的bin/drill-embedded.cmd(Windows系统的启动脚本),用文本编辑器打开它,在启动Java的命令行中添加参数-Ddrill.exec.guava.patch.disable=true。

修改后的启动命令大概是这样:

java -Ddrill.exec.guava.patch.disable=true -cp "%CLASSPATH%" org.apache.drill.jdbc.Driver

保存后,重新启动嵌入式模式的Drill。

方法二:替换兼容的Guava依赖包
  • 进入Drill安装目录的jars文件夹,找到旧的Guava jar包(比如guava-xxx.jar)
  • 下载与Drill 1.13.0兼容的guava-19.0.jar,替换掉旧的jar包
  • 重启Drill即可

3. 验证启动状态

重启后,你可以做这些验证:

  • 看命令行输出有没有Drillbit started successfully的提示
  • 尝试执行简单查询:SELECT * FROM sys.version;
  • 再次访问localhost:8047,如果还是不行,检查conf/drill-override.conf里的drill.exec.http.port配置是不是8047

4. 检查端口与防火墙

  • 确认Windows防火墙没有拦截8047端口,可以临时关闭防火墙测试一下
  • 用netstat -ano | findstr :8047命令检查端口是否被其他进程占用,如果被占用,关闭对应进程或者修改Drill的端口配置

内容的提问来源于stack exchange,提问作者tomar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:49:09