资讯详情

资讯详情

Apache DolphinScheduler Spark 数据源接入指南:字段配置、插件激活与 Kerberos 认证

Apache DolphinScheduler Spark 数据源接入指南字段配置、插件激活与 Kerberos 认证【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinschedulerApache DolphinScheduler 通过插件化数据源体系接入外部计算存储服务其中 Spark 数据源面向通过 JDBC 访问 SparkSpark Thrift Server / HiveServer2 协议的场景。本文围绕官方文档 Spark数据源完整梳理数据源创建字段、插件依赖激活、Jdbc 连接参数与 Kerberos 配置并结合仓库中dolphinscheduler-datasource-spark插件的源码实现讲清连接 URL 的生成规则与底层原理帮助你在实际集群中正确、安全地接入 Spark 数据源并用于工作流任务。是否原生支持先激活插件依赖与 MySQL 等数据源不同Spark 数据源不是原生内置可用的。从 3.3.0 版本开始DolphinScheduler 的二进制发行包不再携带插件依赖需要用户自行下载对应插件包否则在启动服务或使用数据源时会遇到ClassNotFoundException。激活方式请参考 伪集群部署 文档中的下载插件依赖章节核心操作如下# 下载并安装 3.3.0 版本的插件依赖 bash ./bin/install-plugins.sh 3.3.0也可以通过修改conf/plugins_config文件按需指定插件例如只启用 Spark 数据源插件--datasource-plugins-- dolphinscheduler-datasource-spark --end--注意插件依赖包通常不包含在二进制包中。若启动时出现ClassNotFoundException请检查对应插件类型的依赖是否已安装。DolphinScheduler 本身不依赖 Hadoop、Hive、Spark但运行依赖它们的任务时需要有对应的环境支持。在仓库中Spark 数据源插件位于 dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-spark并在 dolphinscheduler-datasource-all/pom.xml 中被聚合装配安装插件依赖后即完成激活。创建 Spark 数据源字段详解在安全中心 → 数据源中心创建数据源时选择Spark类型需要填写的字段如下字段说明数据源选择 Spark数据源名称输入数据源的名称用于在任务中标识该数据源描述输入数据源的描述可选IP/主机名输入连接 Spark 的 IP 或主机名支持逗号分隔多个节点端口输入连接 Spark 的端口一般与 Spark Thrift Server 的 JDBC 监听端口一致用户名设置连接 Spark 的用户名密码设置连接 Spark 的密码数据库名输入连接 Spark 的数据库名称默认库Jdbc 连接参数用于 Spark 连接的参数设置以 JSON 形式填写其中IP/主机名与端口的组合决定 JDBC 连接地址。从 SparkDataSourceProcessor.java 的createConnectionParams实现可以看出连接前缀固定为jdbc:hive2://常量JDBC_HIVE_2定义于 DataSourceConstants.java若主机名填写了逗号分隔的多个节点如localhost1,localhost2插件会拼接为jdbc:hive2://localhost1:port,localhost2:port/database形式的多地址连接串数据库名会作为路径拼接到 URL 末尾形成jdbc:hive2://host1:port,host2:port/database。对应单元测试 SparkDataSourceProcessorTest.java 对此做了明确断言例如输入主机localhost1,localhost2、端口1234、数据库default时生成的地址为jdbc:hive2://localhost1:1234,localhost2:1234JDBC URL 为jdbc:hive2://localhost1:1234,localhost2:1234/default。Jdbc 连接参数以 JSON 填写拼接进连接串Jdbc 连接参数字段以 JSON 形式填写连接附加参数例如{ serverTimezone: utc, hive.server2.proxy.user: hive }这些参数最终会被转换并追加到 JDBC URL 之后。根据 SparkDataSourceProcessor.java 中的getJdbcUrl与transformOther实现other参数会以keyvalue的形式通过分号;连接最终生成形如jdbc:hive2://host:port/database;serverTimezoneutc的完整连接串。该参数序列化后保存在连接参数对象SparkConnectionParam中字段other为MapString, String用于运行期重建真实 JDBC URL。因此填写时需要符合 Spark Thrift Server / HiveServer2 认可的连接属性名称否则可能导致连接被拒绝。Kerberos 认证配置如果 Spark 集群开启了Kerberos认证则创建数据源时必须填写 Principal。从源码结构看Spark 数据源继承自 HDFS 系列数据源基类Kerberos 相关能力在 BaseHDFSConnectionParam.java 中定义共包含四个认证相关字段字段作用principalKerberos Principal例如spark/hostREALM.COM会被追加到 JDBC URL 尾部;principal...javaSecurityKrb5Confkrb5.conf配置文件路径用于指定 KDC 等 Kerberos 域信息loginUserKeytabUsername登录用户的 keytab 对应用户名loginUserKeytabPathkeytab 文件路径在运行期获取连接时getConnection 会先调用CommonUtils.loadKerberosConf(...)加载krb5.conf与 keytab 完成 Kerberos 登录再基于拼接好的 JDBC URL 建立连接。只有开启 Kerberos 的部署环境下principal等认证参数才会被写入连接参数未开启时这些字段为空。连接驱动与连通性校验Spark 数据源底层复用 HiveServer2 的 JDBC 协议因此其驱动与校验语句与 Hive 数据源一致定义于 DataSourceConstants.java驱动类org.apache.hive.jdbc.HiveDriverORG_APACHE_HIVE_JDBC_HIVE_DRIVERL30校验查询select 1HIVE_VALIDATION_QUERYL79这两项分别由getDatasourceDriver()与getValidationQuery()返回对应测试 SparkDataSourceProcessorTest.java 有直接断言。这也意味着创建数据源时DolphinScheduler 会使用org.apache.hive.jdbc.HiveDriver加载驱动并执行select 1验证连通性目标 Spark 侧需要暴露 HiveServer2 兼容的 JDBC 端口通常由 Spark Thrift Server 提供且网络、权限含 Kerberos 票据均需放通。连接通道方面插件通过 SparkDataSourceChannel.java 提供createAdHocDataSourceClient临时连接与createPooledDataSourceClient连接池两种客户端前者用于即席查询后者用于任务执行场景下复用连接降低频繁建连开销。使用场景与注意事项创建完成后Spark 数据源即可在 DolphinScheduler 的 SQL 类任务中作为目标数据源被选择用于向 Spark Thrift Server 提交 SQL 查询。实操中建议关注以下几点先激活插件未安装dolphinscheduler-datasource-spark插件依赖前数据源列表中不会出现 Spark 选项或创建后无法连通。多节点地址IP/主机名支持逗号分隔插件会自动生成jdbc:hive2://h1:p,h2:p/db格式适合对接多实例部署的 Spark Thrift Server。Kerberos 集群必须填写 Principal同时需要保证 keytab、krb5.conf在 DolphinScheduler 运行节点上路径正确且权限可读。数据库名决定默认库连接串中的/database段决定了会话默认使用的数据库请按需填写。Jdbc 连接参数为 JSON填写的是以分号拼接进 URL 的连接属性键值对注意属性名需被 Spark Thrift Server 识别。通过上述配置与源码对照你可以在 Apache DolphinScheduler 中稳定接入受 Kerberos 保护的 Spark 集群并让 SQL 任务直接复用该连接完成查询与数据处理。【免费下载链接】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),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →