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. Typora使用手册(基础)

    Typora使用手册 第一步,你首先得拥有一个Typora,可通过(https://typoraio.cn/)该网址下载. 第二步,安装并打开. 第三步,让我们开始认识并设置自己的Typora吧~ 什 ...

  2. 基于DSP_CPLD_aP8942A_LM1791的语音控制

    语音驱动程序  drv_voice.c 语音服务程序  srv_voice.c 1.先运行初始化函数,主要是设置初始音量,并建立一个软件定时器来,以10ms的周期来调用语音播放函数. 1 void s ...

  3. 在Ubuntu安装eclipse环境

    下载准备 1安装jdk,笔者安装的是jdk-8u121-linux-x64 2安装eclipse,下载地址:http://www.eclipse.org/downloads/packages/ecli ...

  4. VUE3 之 自定义指令的实现 - 这个系列的教程通俗易懂,适合新手

    1. 概述 老话说的好:能屈能伸的人生,才是完满而丰富的人生. 言归正传,今天我们来聊聊 VUE 中自定义指令的实现. 2. 自定义指令 2.1 文本框聚焦的实现  <body> < ...

  5. 墙裂推荐!一款 VM 大规模集群管理工具

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ Google 发布了基础设施管理工具 VM Manager,可自动维护大型Compute En ...

  6. PXE实现无人值守批量安装服务器

    今天我们使用PXE+Kickstart+TFTP+DHCP+FTP实现无人值守安装服务器. 一.无人值守所需服务介绍: 1)PXE PXE,远程引导技术 功能:使计算机通过网络启动 硬件要求:客户端的 ...

  7. 注解,lombok

    使用注解开发 UserMapper public interface UserMapper { @Select("select * from db4.user") List< ...

  8. python入门基础知识二(字符串的常用操作方法)

    下标/索引: a = "I'm interested in Python." print(a[4]) i # 英文的字符串每一个下标/索引对应一个字母(含标点) a = '我喜欢p ...

  9. DOM 事件与事件委托

    DOM 事件与事件委托 本文写于 2020 年 5 月 28 日 先思考一个问题:我们如何给一百个 button 添加点击事件? 遍历? 那岂不是要添加一百个监听器? 这就需要事件委托了. 其实这根本 ...

  10. Spring Boot 配置 HikariCP

    HikariCP 是一个可靠的.高性能的 JDBC 连接池 本来用的 alibaba/druid,但实际并没有怎么用其内置的监控网页,然后多方调查,决定弃用 druid,替换为 HikariCP Sp ...