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. 2022最新IntellJ IDEA的zheng开发部署文档

    目录 前景提示 一.环境整合 构建工具(参考工具部署方式) 二.git 导入编译器 三.模块描述浅析 四.配置文档 1.总配置 2.数据库配置 3.密码设置 4.配置建议 五.在IDEA中执行MySQ ...

  2. zookeeper篇-初识zookeeper

    点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. 什么是zookeeper? 中间件 作用于分布式系统 支持java.c语 ...

  3. golang md5加密和python md5加密比较

    python md5加密和golang md5加密各有不同,记录于此做备忘 Python 方法 md5 import base64 import hashlib def get_md5_data(bo ...

  4. 分享一个JDK批量异步任务工具CompletionService,超好用

    摘要:当需要批量提交异步任务,推荐CompletionService.CompletionService将线程池Executor和阻塞队列融合,让批量异步任务管理更简单. 本文分享自华为云社区< ...

  5. Intel CPU平台和架构介绍

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 服务器主板上数据传输流依次为CPU .内存.硬盘和网卡, ...

  6. django-rest-framework 基础四 过滤、排序、分页、异常处理

    django-rest-framework 基础四 过滤.排序.分页.异常处理 目录 django-rest-framework 基础四 过滤.排序.分页.异常处理 1. 过滤 1.1 内置过滤类 1 ...

  7. Ruby 趣学笔记(二)

    Ruby 趣学笔记(二) 本文写于 2020 年 5 月 7 日 类的继承 之前忘记写了,Ruby 的继承写法是: class IPhone < Phone def initialize(id, ...

  8. VMware虚拟机中安装Linux操作系统(ubuntu)

    一.准备工作: 1.下载VMware虚拟机 下载地址:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evalua ...

  9. docker-compose 启动 rabbitmq

    说明 前提条件 ubuntu-20.04-server docker & docker-compose 安装参考 安装 准备 rabbitmq.conf 新建 rabbitmq.conf 文件 ...

  10. 【多线程】JUC版的CopyOnWriteArrayList

    CopyOnWriteArrayList CopyOnWriteArrayList适合于多线程场景下使用,其采用读写分离的思想,读操作不上锁,写操作上锁,且写操作效率较低. CopyOnWriteAr ...