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

基于Quarkus的Apache Camel Drill组件凭证传递及配置问题

Apache Camel + Drill 连接Hive传递凭证的实现方案(Quarkus环境)

Camel Drill组件本身未直接暴露凭证配置入口,可通过自定义绑定带凭证的Drill数据源的方式实现,无需在组件URI中明文传递敏感信息,适配Quarkus运行环境的具体实现步骤如下:

1. 引入必要依赖

Quarkus环境中优先使用官方Camel扩展,同时引入和你的Drill集群版本匹配的JDBC驱动,Maven依赖参考:

  • org.apache.camel.quarkus:camel-quarkus-drill:Camel Drill组件的Quarkus扩展
  • org.apache.drill.exec:drill-jdbc-all:Drill官方JDBC全量驱动包

2. 配置带凭证的Drill数据源

推荐直接通过Quarkus配置文件声明数据源,无需硬编码逻辑,在application.properties中添加如下配置:

# Drill数据源基础配置
quarkus.datasource.drill.jdbc.url=jdbc:drill:drillbit=<你的Drill节点地址>:31010
quarkus.datasource.drill.username=<Drill/Hive用户名>
quarkus.datasource.drill.password=<对应密码>
quarkus.datasource.drill.db-kind=other
quarkus.datasource.drill.jdbc.driver=org.apache.drill.jdbc.Driver

如果你的Drill开启了Kerberos等特殊认证,直接把认证参数拼接在JDBC URL末尾即可,示例:jdbc:drill:drillbit=xxx:31010;auth=kerberos;kerberos_principal=xxx;kerberos_keytab=/path/to/keytab

3. Camel路由中引用数据源

Drill组件支持直接传入预配置的数据源,不需要在URI中重复填写连接、凭证信息,路由示例:

from("direct:queryHive")
    // 设置查询语句,指定Hive存储插件下的库表
    .setHeader("CamelDrillQuery", constant("SELECT * FROM hive.库名.表名 LIMIT 10"))
    // 引用上一步配置的drill数据源
    .to("drill:?dataSource=#drill")
    .log("查询返回结果:${body}");

注意事项

  • 提前确认Drill集群的Hive存储插件配置正常,你使用的凭证有对应Hive表的查询权限
  • 若使用Quarkus原生编译模式,需要把Drill JDBC驱动的核心类添加到反射豁免列表,避免运行时报类找不到错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:57:00