3

dolphinscheduler添加hana支持 - funnyZpC

 1 year ago
source link: https://www.cnblogs.com/funnyzpc/p/16395092.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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以获取源码,同时,若您有啥建议请底下留言哈😁,好了,现在开始~

一.整体的项目结构

(项目结构)

1161789-20220711141803720-368216068.png

上图是dolphinscheduler整体代码结构,里面dolphinscheduler-ui是前端页面模块,其下方均为脚本或文档之类,其上方有daocommon非独立部署模块,以及standalone以及service等独立部署模块,本次需要改造的部分基本均以高亮色显示
同时本人也补充了下文档,主要涉及到独立打包以及启动等命令,具体请见项目内的 MY.md ,ok,下面先从ui开始说起~

二.ui部分修改

(数据源)

1161789-20220711142648403-73996225.png

(datax任务)

1161789-20220711142655018-1108882929.png

(procedure任务)

1161789-20220711142700068-519101721.png

(sql任务)

1161789-20220711142704956-1083142944.png

(sqoop任务)

1161789-20220711142711475-299603742.png

sqoop任务这个任务类型如果没用到着实没得改造的必要,毕竟比较偏门,当然啦,如果真的用大数据相关的东东还是建议的,本人就没有改哈😅😅
以上只是呈现出来的页面,具体代码在dolphinscheduler-ui这个模块内(建议使用webstormvscode等前端ide打开并编辑),具体对应的代码有这几个:

1161789-20220711143337359-1609163308.png

因为只需要在选项内添加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文件(这个模块需要创建)

具体位置如下方截图:

1161789-20220711145015342-1522518135.png

3.2修改dolphinscheduler-spi

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

1161789-20220711145318575-1245546690.png

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

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

1161789-20220711145609318-256011161.png

3.4创建dolphinscheduler-datasource-saphana模块

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

1161789-20220711145922087-1365324571.png

四.打包上传

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

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

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK