dolphinscheduler添加hana支持
dolphinscheduler添加hana支持
转载请注明出处: https://www.cnblogs.com/funnyzpc/p/16395092.html
前面
上一节有讲datax对hana的支持,同时也讲了dolphinscheduler下的datax的配置( ),唯一的缺陷是dolphinscheduler默认只对常规数据库厂商的db做了支持,比如:mysql、oracle、sqlserver、postgresql...等等,所以必须要扩展,以提供hana选项,不然仅仅datax支持了hana仍旧无法在dolphinscheduler中使用哈(~ ̄(OO) ̄)ブ
本篇博客仅讲个人对hana添加支持的改造过程,具体代码不大会提到,有需要参考的,可以访问https://github.com/funnyzpc/dolphinscheduler-2.0.5以获取源码,同时,若您有啥建议请底下留言哈,好了,现在开始~
一.整体的项目结构
(项目结构)

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

(datax任务)

(procedure任务)

(sql任务)

(sqoop任务)

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

因为只需要在选项内添加hana支持,所以就很简单,这里若参考,请参考我的github上的(开头有提)代码哈
如果修改完成,通过下面代码编译dolphinscheduler-ui模块,将生成的dist内的文件拷贝到服务器的dolphinscheduler目录下ui目录中,覆盖即可,不过建议还是先备份哈~
npm run build:release
具体命令也在代码的MY.md文档内。
三.后端部分修改
先总结下,对后端的修改无非就是添加hana的jdbc包以及 hana数据源模块及相关的参数配置,其它的真的就没啥了。
3.1 添加hana的jdbc依赖
添加依赖大概有三个地方:
- 1.
dolphinscheduler-2.0.5中主目录下pom文件,建议添加版本以及依赖 - 2.
dolphinscheduler-dao模块下的pom文件 - 3.
dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-saphana模块下的pom文件(这个模块需要创建)
具体位置如下方截图:

3.2修改dolphinscheduler-spi
这个地方主要添加hana的driver地址以及验证语句、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支持的更多相关文章
- datax开启hana支持以及dolphinscheduler开启datax任务
datax开启hana支持以及dolphinscheduler开启datax任务 前面(@,@) 前段时间因为要做异构数据导入导出,所以搜了下,发现这类工具收费的居多,使用起来未必趁手~ 于是我找了下 ...
- 把自己Github上的代码添加Cocoapods支持
转载请注明原链接:http://www.cnblogs.com/zhanggui/p/6003481.html 一.前言 这两天被cocoapods折磨的心力憔悴.看cocoapods官网的添加支持, ...
- Spring Boot 添加Shiro支持
前言: Shiro是一个权限.会话管理的开源Java安全框架:Spring Boot集成Shiro后可以方便的使用Session: 工程概述: (工程结构图) 一.建立Spring Boot工程 参照 ...
- 在IntelliJ IDEA中添加框架支持时找不到Hibernate的解决办法
问题描述 第一次在Add Frameworks support界面中添加hibernate支持的时候,异常中断,导致没有成功添加. 第二次进入Add Frameworks support窗口时,发现找 ...
- 别再为了iOS新系统设备而重新安装一个新版Xcode了.其实我们可以添加版本支持
众所周知,Xcode7.3的代码补全是有问题的 如导入自定义类之后,在代码中并不会补全相应的类名... 但Xcode7.2是没有这个问题的,但很多时候我们自己的设备都升级到了iOS9.3.X系统,导 ...
- 将自己库添加Cocoapods支持
给库添加Cocoapods支持, 使这个工具使用起来更加方便, 更好的使用Cocoapods, 助力iOS程序开发, 下面进入正题, 想要实现这个过程, 绝对不虚此读. 首先写好一个要添加Cocoap ...
- net-snmp源码VS2013编译添加加密支持(OpenSSL)
net-snmp源码VS2013编译添加加密支持(OpenSSL) snmp v3 协议使用了基于用户的安全模型,具有认证和加密两个模块. 认证使用的算法是一般的消息摘要算法,例如MD5/SHA等.这 ...
- net-snmp源码VS2013编译添加加密支持(OpenSSL)(在VS里配置编译OpenSSL)
net-snmp源码VS2013编译添加加密支持(OpenSSL) snmp v3 协议使用了基于用户的安全模型,具有认证和加密两个模块. 认证使用的算法是一般的消息摘要算法,例如MD5/SHA等.这 ...
- Auty自动化测试框架第六篇——垃圾代码回收、添加suite支持
[本文出自天外归云的博客园] 垃圾代码回收 添加脚本恢复机制,因为框架会自动生成一些代码,如果代码生成后出现问题导致代码没有正常删除掉,则会造成代码垃圾,在auty目录添加recovery.py文件: ...
随机推荐
- SQL语言详解
SQL 1. 概述 Structured Query Language 结构化查询语言 结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言, ...
- go-micro开发RPC服务的方法及其运行原理
go-micro是一个知名的golang微服务框架,最新版本是v4,这篇文章将介绍go-micro v4开发RPC服务的方法及其运作原理. 基本概念 go-micro有几个重要的概念,后边开发RPC服 ...
- Linux网络流量相关
一直以来对Linux网络这块都感觉比较乱 遇到一个UDP丢包的问题:在测试中,一台VM虚拟机,CPU利用率55%左右,内存利用率7%左右,网卡流量也远没到限制的时候出现了丢包情况 使用netstat ...
- Bugku练习题---MISC---啊哒
Bugku练习题---MISC---啊哒 flag:flag{3XiF_iNf0rM@ti0n} 解题步骤: 1.观察题目,下载附件 2.下载以后发现是一张图片,从表面看没有什么有价值的信息 3.直接 ...
- 经典!服务端 TCP 连接的 TIME_WAIT 过多问题的分析与解决
开源Linux 专注分享开源技术知识 本文给出一个 TIME_WAIT 状态的 TCP 连接过多的问题的解决思路,非常典型,大家可以好好看看,以后遇到这个问题就不会束手无策了. 问题描述 模拟高并发的 ...
- 详解 Java 17 中新推出的密封类
Java 17推出的新特性Sealed Classes经历了2个Preview版本(JDK 15中的JEP 360.JDK 16中的JEP 397),最终定稿于JDK 17中的JEP 409.Seal ...
- SpringBoot从0到0.7——第二天
SpringBoot从0到0.7--第二天 今天来搭建一个登陆界面进行跳转,不带有数据库,看似就很简单的一个界面,却让我学习了好长时间去了解学习他的原理,能看懂的话还是尽量去看源码. 首先创建一个项目 ...
- uniapp封装request方法及调用
export default { doRequest(method, url, data) { // 如果data为空 if (!data) var data = [] var arr = [] ar ...
- 安装Sonarqube到CentOS(YUM)
SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量. 通过插件形式,可以支持包括 java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groo ...
- Docker的网络
概述 docker使用Linux桥接网卡,在宿主机虚拟一个docker容器网桥(docker0),docker启动一个容器时会根 据docker网桥的网段分配给容器一个IP地址,称为Container ...