dolphinscheduler添加hana支持

转载请注明出处: https://www.cnblogs.com/funnyzpc/p/16395092.html

前面

上一节有讲dataxhana的支持,同时也讲了dolphinscheduler下的datax的配置( ),唯一的缺陷是dolphinscheduler默认只对常规数据库厂商的db做了支持,比如:mysqloraclesqlserverpostgresql...等等,所以必须要扩展,以提供hana选项,不然仅仅datax支持了hana仍旧无法在dolphinscheduler中使用哈(~ ̄(OO) ̄)ブ

本篇博客仅讲个人对hana添加支持的改造过程,具体代码不大会提到,有需要参考的,可以访问https://github.com/funnyzpc/dolphinscheduler-2.0.5以获取源码,同时,若您有啥建议请底下留言哈,好了,现在开始~

一.整体的项目结构

(项目结构)

上图是dolphinscheduler整体代码结构,里面dolphinscheduler-ui是前端页面模块,其下方均为脚本或文档之类,其上方有daocommon非独立部署模块,以及standalone以及service等独立部署模块,本次需要改造的部分基本均以高亮色显示

同时本人也补充了下文档,主要涉及到独立打包以及启动等命令,具体请见项目内的 MY.md ,ok,下面先从ui开始说起~

二.ui部分修改

(数据源)



(datax任务)



(procedure任务)



(sql任务)



(sqoop任务)

sqoop任务这个任务类型如果没用到着实没得改造的必要,毕竟比较偏门,当然啦,如果真的用大数据相关的东东还是建议的,本人就没有改哈

以上只是呈现出来的页面,具体代码在dolphinscheduler-ui这个模块内(建议使用webstormvscode等前端ide打开并编辑),具体对应的代码有这几个:



因为只需要在选项内添加hana支持,所以就很简单,这里若参考,请参考我的github上的(开头有提)代码哈

如果修改完成,通过下面代码编译dolphinscheduler-ui模块,将生成的dist内的文件拷贝到服务器的dolphinscheduler目录下ui目录中,覆盖即可,不过建议还是先备份哈~

npm run build:release

具体命令也在代码的MY.md文档内。

三.后端部分修改

先总结下,对后端的修改无非就是添加hanajdbc包以及 hana数据源模块及相关的参数配置,其它的真的就没啥了。

3.1 添加hanajdbc依赖

添加依赖大概有三个地方:

  • 1.dolphinscheduler-2.0.5中主目录下pom文件,建议添加版本以及依赖
  • 2.dolphinscheduler-dao模块下的pom文件
  • 3.dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-saphana模块下的pom文件(这个模块需要创建)

具体位置如下方截图:

3.2修改dolphinscheduler-spi

这个地方主要添加hanadriver地址以及验证语句jdbc前缀这些,如果有其它的还是根据实际情况进行添加即可~

3.3修改dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api

此处建议是加一个包,在包内添加这三个文件: SapHanaConnectionParam、SapHanaDatasourceParamDTO、SapHanaDatasourceProcessor ,当然啦,如果需要扩展其它厂商的db,也可可以找找相邻包内的代码参考即可~

3.4创建dolphinscheduler-datasource-saphana模块

模块的具体位置在 dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-saphana ,仅包含三个文件: SapHanaDataSourceChannel、SapHanaDataSourceChannelFactory、SapHanaDataSourceClient 如有不大妥当的地方,建议根据您的实际情况进行修改,不是很难~

四.打包上传

因为项目使用的是maven,所以打包较慢,所以本人采用以下语句打包:

mvn clean -Dmaven.test.skip=true package -Prelease -pl dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api -am
mvn clean -Dmaven.test.skip=true package -Prelease -pl dolphinscheduler-api -am

将打包好的两个文件上传至服务器,同时别忘了还有添加的jdbc依赖:ngdbc-2.12.7.jar 也一同上传至服务器上的dolphinscheduler下的lib目录,上传完成需要重启才可生效!

最后

好了,本章即到此,因为dolphinscheduler模块数量过于繁多,而具体使用 不少也是单机使用,所以有做单机化改造,具体则是围绕着 standalone-server 做代码简化及调整,期待哟~

dolphinscheduler添加hana支持的更多相关文章

  1. datax开启hana支持以及dolphinscheduler开启datax任务

    datax开启hana支持以及dolphinscheduler开启datax任务 前面(@,@) 前段时间因为要做异构数据导入导出,所以搜了下,发现这类工具收费的居多,使用起来未必趁手~ 于是我找了下 ...

  2. 把自己Github上的代码添加Cocoapods支持

    转载请注明原链接:http://www.cnblogs.com/zhanggui/p/6003481.html 一.前言 这两天被cocoapods折磨的心力憔悴.看cocoapods官网的添加支持, ...

  3. Spring Boot 添加Shiro支持

    前言: Shiro是一个权限.会话管理的开源Java安全框架:Spring Boot集成Shiro后可以方便的使用Session: 工程概述: (工程结构图) 一.建立Spring Boot工程 参照 ...

  4. 在IntelliJ IDEA中添加框架支持时找不到Hibernate的解决办法

    问题描述 第一次在Add Frameworks support界面中添加hibernate支持的时候,异常中断,导致没有成功添加. 第二次进入Add Frameworks support窗口时,发现找 ...

  5. 别再为了iOS新系统设备而重新安装一个新版Xcode了.其实我们可以添加版本支持

    众所周知,Xcode7.3的代码补全是有问题的  如导入自定义类之后,在代码中并不会补全相应的类名... 但Xcode7.2是没有这个问题的,但很多时候我们自己的设备都升级到了iOS9.3.X系统,导 ...

  6. 将自己库添加Cocoapods支持

    给库添加Cocoapods支持, 使这个工具使用起来更加方便, 更好的使用Cocoapods, 助力iOS程序开发, 下面进入正题, 想要实现这个过程, 绝对不虚此读. 首先写好一个要添加Cocoap ...

  7. net-snmp源码VS2013编译添加加密支持(OpenSSL)

    net-snmp源码VS2013编译添加加密支持(OpenSSL) snmp v3 协议使用了基于用户的安全模型,具有认证和加密两个模块. 认证使用的算法是一般的消息摘要算法,例如MD5/SHA等.这 ...

  8. net-snmp源码VS2013编译添加加密支持(OpenSSL)(在VS里配置编译OpenSSL)

    net-snmp源码VS2013编译添加加密支持(OpenSSL) snmp v3 协议使用了基于用户的安全模型,具有认证和加密两个模块. 认证使用的算法是一般的消息摘要算法,例如MD5/SHA等.这 ...

  9. Auty自动化测试框架第六篇——垃圾代码回收、添加suite支持

    [本文出自天外归云的博客园] 垃圾代码回收 添加脚本恢复机制,因为框架会自动生成一些代码,如果代码生成后出现问题导致代码没有正常删除掉,则会造成代码垃圾,在auty目录添加recovery.py文件: ...

随机推荐

  1. 攻防世界-MISC:如来十三掌

    这是攻防世界新手练习区的第三题,题目如下: 点击附件1下载,打开后内容如下: 没看懂是什么,还是参考一下WP吧.WP说去一个叫"与佛论禅"的网站,登进去后 发现是一个加解密网站,将 ...

  2. K8s 如何提供更高效稳定的编排能力?K8s Watch 实现机制浅析

    关于我们 更多关于云原生的案例和知识,可关注同名[腾讯云原生]公众号~ 福利: ①公众号后台回复[手册],可获得<腾讯云原生路线图手册>&<腾讯云原生最佳实践>~ ②公 ...

  3. 干货|带你体验一次原生OpenStack云平台发放云主机的过程

    一个执着于技术的公众号 1 前言 上一章节我们完成了OpenStack云平台的搭建工作,今天就带大家一起学习下如何发放一台云主机 点击查看:如何搭建一套OpenStack云平台 2 发放OpenSta ...

  4. HMS Core地理围栏能力助你实现指定范围人群的精准消息推送

    精准推送是移动端产品留存阶段的主要运营手段,精准推送常常会与用户画像紧密结合,针对用户的喜好.画像,采用不同策略,但基于用户所属区域推送消息却很难实现.目前市面上大多数第三方消息推送服务商,在系统未深 ...

  5. SQL注入之information_schema

    在学习SQL注入时, 经常拿出来的例子就是PHP+MySQL这一套经典组合. 其中又经常提到的>=5.0版本的MySQL的内置库: information_schema 简单看一下informa ...

  6. 试驾 Citus 11.0 beta

    https://www.citusdata.com/blog/2022/03/26/test-drive-citus-11-beta-for-postgres/ Citus 11.0 beta 的最大 ...

  7. mybatis 查询返回的类型中字段类型为 List<xx>

    基本类型数组 mapper.xml <resultMap id="xxDtoResultMap" type="com.xx.xxDto"> < ...

  8. yarn/npm 设置镜像地址

    注意 如果开发 electron 桌面软件,需要设置以下两个镜像地址 disturl.electron_mirror 如果用到了 node-sass 需要设置以下一个镜像地址 sass_binary_ ...

  9. 165. Compare Version Numbers - LeetCode

    Question 165. Compare Version Numbers Solution 题目大意: 比较版本号大小 思路: 根据逗号将版本号字符串转成数组,再比较每个数的大小 Java实现: p ...

  10. [C++STL] vector 容器的入门

    vector容器的入门 #include<vector> 创建vector容器的几种方式 数据类型可以是结构体,也能是另外一个容器 vector 的初始化: (1) 创建并声明大小 vec ...