拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Apache DolphinScheduler KYUUBI 数据源接入指南:配置、Kerberos 验证与插件激活

Apache DolphinScheduler KYUUBI 数据源接入指南配置、Kerberos 验证与插件激活【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler导读本文围绕 Apache DolphinScheduler 中的 KYUUBI 数据源展开系统讲解如何在数据源中心创建 KYUUBI 连接、各配置项的含义与填写方式、基于 JDBC 连接参数的 Kerberos 验证方案以及该插件非原生支持、需下载插件依赖的激活前提。读完本文你将能在 DolphinScheduler 中正确创建可用的 KYUUBI 数据源理解插件底层如何拼接 JDBC URL 与连接信息并掌握通过conf/plugins_config激活数据源插件的完整流程。KYUUBI 数据源在 DolphinScheduler 中用于对接 Apache Kyuubi——一个建立在 HiveServer2 协议之上的多租户 JDBC/ODBC 网关通过 Kyuubi 可以以统一的 SQL 入口访问 Spark/Flink 等底层引擎。因此本数据源常被用于 SQL 任务、SQL 查询等需要以 JDBC 方式访问 Kyuubi 引擎的场景。KYUUBI 数据源创建入口与界面在 DolphinScheduler 前端dolphinscheduler-ui的「数据源中心」页面点击新建数据源下拉选择 KYUUBI 即可打开创建表单。数据源类型列表中 KYUUBI 的默认端口为 10000与 HIVE 一致对应代码位于 use-form.ts。使用 HiveServer2 协议连接 KYUUBIKYUUBI 对外提供的是兼容 HiveServer2 协议的 JDBC 接口因此创建数据源时字段的语义与 Hive 数据源相近。各字段说明如下配置项说明数据源选择 KYUUBI数据源名称输入数据源的名称描述输入数据源的描述IP 主机名输入连接 KYUUBI 的 IP端口输入连接 KYUUBI 的端口用户名设置连接 KYUUBI 的用户名密码设置连接 KYUUBI 的密码数据库名输入连接 KYUUBI 的数据库名称Jdbc 连接参数用于 KYUUBI 连接的参数设置以 JSON 形式填写字段在源码中的映射上述表单字段最终会落到 KyuubiDataSourceParamDTO 中包含 host、port、database、userName、password、other即 Jdbc 连接参数等属性其类型为DbType.KYUUBI。保存数据源时KyuubiDataSourceProcessor.createConnectionParams() 会按如下规则拼接地址与 JDBC URL地址格式jdbc:kyuubi://{host}:{port},{host}:{port},... JDBC URL 格式jdbc:kyuubi://{host}:{port}/{database}多个 host 以逗号分隔支持配置多个 Kyuubi 入口HA 场景若填写了 Jdbc 连接参数other最终生效的 JDBC URL 会以;拼接各keyvalue参数见 getJdbcUrl() 与transformOther()的实现用户名/密码在存储时通过PasswordUtils加密获取连接时再解密后交给 JDBC 驱动见 getConnection()。底层驱动与连接校验KYUUBI 数据源使用的 JDBC 驱动类为org.apache.kyuubi.jdbc.KyuubiHiveDriver对应 Kyuubi 官方提供的kyuubi-hive-jdbc-shaded依赖见 pom.xml连接校验语句为select 1常量定义于 DataSourceConstants.java。这意味着数据源保存成功后DolphinScheduler 在建立/校验连接时会通过该驱动执行select 1验证连通性请确保目标 Kyuubi 服务允许执行该探测语句。Kerberos 验证配置KYUUBI 数据源本身不在表单中提供独立的 Kerberos 开关而是要求用户直接在「Jdbc 连接参数」中以 JSON 形式配置以下三个参数{ clientKeytab: /path/to/user.keytab, clientPrincipal: userEXAMPLE.COM, serverPrincipal: kyuubi/_HOSTEXAMPLE.COM }参数说明clientKeytab用户客户端验证的 keytab 文件路径clientPrincipal用户客户端验证的 Kerberos principalserverPrincipal服务端通过kyuubi.kinit.principal配置的 Kerberos principal配置后上述 JSON 会作为连接参数other保存并在获取连接时以keyvalue;keyvalue的形式附加到 JDBC URL 尾部如jdbc:kyuubi://host:10000/default;clientKeytab...;clientPrincipal...;serverPrincipal...由KyuubiHiveDriver在建立连接时完成 Kerberos 认证。需要特别注意的是Kerberos 认证依赖运行 DolphinScheduler 服务所在主机的 keytab 文件与 Kerberos 客户端环境如 krb5.conf。因此除了在数据源中填写参数还需确保 api-server / worker 所在机器具备访问对应 keytab 的权限且系统时间与 Kerberos KDC 保持同步否则会因票据校验失败而无法连接。是否原生支持与插件激活KYUUBI 数据源不是原生支持的。从 3.3.0 版本开始DolphinScheduler 的二进制发行包不再内置全部插件依赖需要用户自行下载并激活对应插件后才能使用。以伪集群部署为例按 pseudo-cluster.md 中的「下载插件依赖」章节操作bash ./bin/install-plugins.sh 3.3.0通过 plugins_config 激活 KYUUBI 插件插件安装脚本会读取conf/plugins_config来决定下载哪些插件因此在使用 KYUUBI 数据源前请确认该文件--datasource-plugins--段落中包含dolphinscheduler-datasource-kyuubi。仓库中默认配置已包含该插件见 plugins_config例如--datasource-plugins-- dolphinscheduler-datasource-kyuubi --end--只保留你需要的插件可以有效减少下载量。如果未激活对应插件启动或使用时会抛出ClassNotFoundException之类的错误例如 Kyuubi 驱动类org.apache.kyuubi.jdbc.KyuubiHiveDriver无法加载此时请按上述流程补齐插件依赖并重启相关服务。提示Standalone 模式下插件激活方式相同可参考 standalone.md 中的「下载插件依赖」说明。数据源插件的内部实现结构KYUUBI 数据源模块位于 dolphinscheduler-datasource-kyuubi 目录按 DolphinScheduler 数据源 SPI 规范分为两层参数与处理器层param包KyuubiDataSourceParamDTO表单参数、KyuubiConnectionParam连接参数、KyuubiDataSourceProcessorURL 拼装、连接获取通过AutoService(DataSourceProcessor.class)注册通道层KyuubiDataSourceChannelFactory 通过AutoService(DataSourceChannelFactory.class)注册通道工厂返回 KyuubiDataSourceChannel由其创建临时查询客户端 KyuubiAdHocDataSourceClient 与连接池客户端 KyuubiPooledDataSourceClient。从源码结构看这两个客户端分别继承自数据源 API 中的BaseAdHocDataSourceClient与BasePooledDataSourceClient前者面向临时查询类任务每次使用独立连接后者面向频繁执行的 SQL 任务复用连接池连接。这解释了为什么同一 KYUUBI 数据源既可用于即席查询也可作为 SQL 任务的执行数据源。常见问题排查报ClassNotFoundException: org.apache.kyuubi.jdbc.KyuubiHiveDriverKYUUBI 数据源插件未激活或驱动包缺失按上文「插件激活」章节重新执行install-plugins.sh并确认plugins_config包含dolphinscheduler-datasource-kyuubi。连接测试失败确认 Kyuubi 服务端口可达、用户名/密码正确若有 Jdbc 连接参数检查 JSON 格式是否合法非法 JSON 会导致参数无法解析。Kerberos 认证失败依次核对clientPrincipal、serverPrincipal拼写与 realm 大小写、keytab 文件路径是否在服务节点上存在且有读取权限、服务端kyuubi.kinit.principal与所填serverPrincipal是否一致。多入口连接异常多 host 地址以逗号分隔确认所有入口的端口一致端口字段对所有 host 统一生效。【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门