为啥在嵌入式模式下尝试启动 apache Drill 时出现错误?
Posted
技术标签:
【中文标题】为啥在嵌入式模式下尝试启动 apache Drill 时出现错误?【英文标题】:Why do i have an error when trying to start apache drill in embedded mode?为什么在嵌入式模式下尝试启动 apache Drill 时出现错误? 【发布时间】:2021-07-05 03:27:32 【问题描述】:win10,64 位,本地没有 hadoop 变量(或两者都尝试)。在测试 api 时需要钻取来访问数据库。 JAVA_HOME 设置正确,因为 PATH 还包含 jdc bin 文件夹的目录。当我尝试启动 Drill-embedded.bat 时,我收到以下错误消息(不是完整的原因堆栈不允许粘贴更大的代码):
Error: Failure in starting embedded Drillbit: UNSUPPORTED_OPERATION ERROR: Failure while attempting to load instance of the class of type org.apache.drill.exec.store.StoragePluginRegistry requested at path drill.exec.storage.registry.
[Error Id: 3a07daa6-a6bc-4a8e-996a-67bc3aa3a9f4 ] (state=,code=0)
java.sql.SQLException: Failure in starting embedded Drillbit: UNSUPPORTED_OPERATION ERROR: Failure while attempting to load instance of the class of type org.apache.drill.exec.store.StoragePluginRegistry requested at path drill.exec.storage.registry.
[Error Id: 3a07daa6-a6bc-4a8e-996a-67bc3aa3a9f4 ]
at org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>(DrillConnectionImpl.java:137)
at org.apache.drill.jdbc.impl.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:67)
at org.apache.drill.jdbc.impl.DrillFactory.newConnection(DrillFactory.java:67)
at org.apache.calcite.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:138)
at org.apache.drill.jdbc.Driver.connect(Driver.java:75)
at sqlline.DatabaseConnection.connect(DatabaseConnection.java:135)
at sqlline.DatabaseConnection.getConnection(DatabaseConnection.java:192)
at sqlline.Commands.connect(Commands.java:1364)
at sqlline.Commands.connect(Commands.java:1244)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at sqlline.ReflectiveCommandHandler.execute(ReflectiveCommandHandler.java:38)
at sqlline.SqlLine.dispatch(SqlLine.java:730)
at sqlline.SqlLine.initArgs(SqlLine.java:410)
at sqlline.SqlLine.begin(SqlLine.java:515)
at sqlline.SqlLine.start(SqlLine.java:267)
at sqlline.SqlLine.main(SqlLine.java:206)
Caused by: org.apache.drill.common.exceptions.UserException: UNSUPPORTED_OPERATION ERROR: Failure while attempting to load instance of the class of type org.apache.drill.exec.store.StoragePluginRegistry requested at path drill.exec.storage.registry.
'''
【问题讨论】:
【参考方案1】:这是一个奇怪的错误。你用的是什么版本的钻?
如果你使用这个命令会有什么不同吗:
sqlline.bat -u "jdbc:drill:zk=local"
看起来正在发生的事情是存储插件注册表以某种方式损坏。如果存储插件文件被手动编辑,或者在 Drill 之外进行了其他更改,这可能会发生。
【讨论】:
如何查看? sqllinebat 返回相同的错误。 您使用的是全新安装的 Drill 吗?以我的经验,如果你只是从 Drill.apache.org 下载 Drill 并解压它,假设你正确安装了 Java,它将毫无问题地运行。你有没有修改过你的配置文件? 我只是 dl 并解压了它。我没有修改配置文件。以上是关于为啥在嵌入式模式下尝试启动 apache Drill 时出现错误?的主要内容,如果未能解决你的问题,请参考以下文章
痞子衡嵌入式:串行NOR Flash的Continuous read模式下软复位后i.MXRT无法启动问题解决方案之RESET#
无法启动嵌入式容器 Spring Boot Application org.apache.catalina.LifecycleException:子容器在启动期间失败