首页 > 数据库 >Apache DolphinScheduler 支持使用 OceanBase 作为元数据库啦!

Apache DolphinScheduler 支持使用 OceanBase 作为元数据库啦!

时间:2023-08-21 16:48:22浏览次数:61  
标签:java OceanBase 数据库 DolphinScheduler mysql Apache 分布式

file

DolphinScheduler是一个开源的分布式任务调度系统,拥有分布式架构、多任务类型、可视化操作、分布式调度和高可用等特性,适用于大规模分布式任务调度的场景。目前DolphinScheduler支持的元数据库有Mysql、PostgreSQL、H2,如果在业务中需要更好的性能和扩展性,可以在DolphinScheduler中使用OceanBase数据库作为元数据库进行替换。节点数量和规模可以自由调整,实现无缝扩展和缩减。

一. OceanBase数据库

OceanBase数据库是阿里巴巴自主研发的分布式关系型数据库,具有以下特点:

  1. 分布式架构:OceanBase采用分布式架构,可水平扩展,支持PB级别的数据存储和处理。

  2. 高可用性:OceanBase采用分布式副本机制,实现数据的冗余备份,保证在节点故障时仍能提供可用的服务。

  3. 高性能:OceanBase采用多维度优化技术,包括数据存储、查询优化、分布式事务等方面,可大幅提升数据库的性能。

  4. 强一致性:OceanBase采用基于Paxos协议的多副本一致性算法,实现强一致性的分布式事务处理。

  5. 兼容SQL:OceanBase支持标准的SQL语言,包括DDL、DML和DQL等命令。

  6. 可扩展性:OceanBase支持在线扩容和缩容,可根据业务需求自由调整节点数量和规模。

  7. 安全性:OceanBase采用多层安全策略,包括密码加密、数据加密、访问控制等,保障数据库的安全性。

总之,OceanBase数据库具有高可用、高性能、强一致性等特性,适用于大规模、高并发的业务场景。

二. DolphinScheduler支持OceanBase数据源

在DolphinScheduler中使用OceanBase做数据源在调度业务上的优势:

  1. 高性能:OceanBase可以处理大规模数据,而且在数据存储和处理方面都采用了多维度优化技术,所以相对于其他数据库,其有更高的性能表现,可以快速地处理数据。

  2. 高可靠性:OceanBase是一个分布式数据库,通过多节点的数据冗余备份,当某个节点发生故障时能够自动切换,保证服务的高可靠性。

  3. 事务处理:如果业务需要原子性的操作,OceanBase可以提供强一致性的分布式事务处理,从而保证数据不会出现不一致的情况。

  4. 分布式调度:DolphinScheduler自身是分布式任务调度系统,和OceanBase分布式架构相互匹配,可以充分利用Oceanbase的分布式特性,提供更高效率的调度服务。

  5. 可扩展性:DolphinScheduler和OceanBase都支持在线扩容和缩容,可以根据业务需求自由调整节点数量和规模,实现无缝扩展和缩减。

使用OceanBase作为数据源可以带来高性能、高可靠性、高安全性和强大的扩展性,和DolphinScheduler结合使用,将会为调度业务的稳定性、可靠性、可扩展性带来更优秀的表现。

三. OceanBase具体兼容Mysql的哪些特性

  1. 数据类型:OceanBase支持MySQL的常见数据类型,如整数、浮点数、日期和时间、字符串等。

  2. SQL语法:OceanBase支持MySQL的常见SQL语句,如SELECT、INSERT、UPDATE、DELETE等命令。

  3. 存储引擎:OceanBase支持InnoDB存储引擎,从而可以兼容MySQL的事务和锁定特性。

  4. 存储过程:OceanBase支持MySQL的存储过程特性,包括存储过程、存储函数和存储触发器等。

  5. 工具和驱动:OceanBase支持MySQL的常见工具和驱动,如MySQL Workbench、Navicat和JDBC等。

四. DolphinScheduler更换为OceanBase元数据库的步骤

  1. 创建OceanBase数据源,包括主机地址、端口号、用户名、密码等信息;

阿里公有云:在阿里云官网申请公有云的OceanBase实例,申请成功后可在控制台-云数据库OceanBase版-实例列表页面看到状态为运行中的实例:

file

进入实例可以看到数据库实例和下方的代理私网、公网地址;右上角可以新建数据库和新建账号,非超级账号需要在账号管理页面修改权限才可访问数据库,此账号和密码会作为服务内连接OceanBase数据库的数据库账号密码:
file

创建成功后在面板登陆数据库或使用其他数据源连接工具或使用命令行登陆数据库并执行SQL验证是否可用:
file

  1. 进入OceanBase后创建DolphinScheduler数据库,执行表初始化SQL文件:
    dolphinscheduler/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sql;

file

file

  1. 修改DolphinScheduler的配置文件,将原有的MySQL数据源替换成新的OceanBase数据源;

本地启动Api服务:修改dolphinscheduler-api模块配置文件中的数据库地址

file

本地启动Standalone服务:修改dolphinscheduler-standalone-server模块配置文件中的数据库地址

同上

服务器部署:修改 /apache-dolphinscheduler-3.1.2-bin/bin/env/dolphinscheduler_env.sh中的数据库地址

file

  1. 启动DolphinScheduler,正常访问登陆并其他模块都可正常操作即可验证OceanBase元数据库连接成功且正常使用:

file

五. 切换过程中需要注意哪些事项

1.外键约束

在使用DolphinSchedulerSQL文件dolphinscheduler_mysql.sql初始化数据库时,SQL的开始会设置 SET FOREIGN_KEY_CHECKS=0 不检查外键约束,需要注意的是OceanBase社区版4.0之前是不支持DDL语句的外键约束的。例官方版本V3.1.1,

所以在这里我们要注意下OceanBase的版本兼容性。

file

2. 数据迁移后插入报错

报错信息如下:

报错信息

Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    at com.mysql.cj.protocol.a.NativePacketPayload.readInteger(NativePacketPayload.java:398)
    at com.mysql.cj.protocol.a.NativePacketPayload.readString(NativePacketPayload.java:605)
    at com.mysql.cj.protocol.a.NativeServerSessionStateController$NativeServerSessionStateChanges.init(NativeServerSessionStateController.java:112)
    at com.mysql.cj.protocol.a.result.OkPacket.parse(OkPacket.java:66)
    at com.mysql.cj.protocol.a.NativeProtocol.readServerStatusForResultSets(NativeProtocol.java:1691)
    at com.mysql.cj.protocol.a.TextResultsetReader.read(TextResultsetReader.java:116)
    at com.mysql.cj.protocol.a.TextResultsetReader.read(TextResultsetReader.java:48)
    at com.mysql.cj.protocol.a.NativeProtocol.read(NativeProtocol.java:1600)
    at com.mysql.cj.protocol.a.NativeProtocol.readAllResults(NativeProtocol.java:1654)
    at com.mysql.cj.protocol.a.NativeProtocol.sendQueryPacket(NativeProtocol.java:1000)
    at com.mysql.cj.NativeSession.execSQL(NativeSession.java:666)
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:930)
    ... 157 common frames omitted

这种情况在切换为OceanBase数据库之后在数据插入时可能会发生。初始化数据时部分数据会带着ID将数据插入表中,之后再次插入数据此时默认主键自增从0开始,这时会出现默认自增步长从10001开始的情况如下:

file

六. 总结

DolphinScheduler本身是一个非常强大的分布式调度系统,它可以帮助您轻松管理和调度大规模的数据任务。而当它与OceanBase结合使用时,它可以为您提供更具弹性、更安全、更可靠的数据存储方式。这种组合可以帮助您更好地解决大规模数据任务管理和调度的问题,同时提高您的工作效率和任务应用的可靠性。因此,如果您正在使用DolphinScheduler来管理和调度数据任务,强烈建议您尝试使用OceanBase作为其元数据库,让您的任务应用变得更加高效和可靠。

本文由 白鲸开源 提供发布支持!

标签:java,OceanBase,数据库,DolphinScheduler,mysql,Apache,分布式
From: https://www.cnblogs.com/DolphinScheduler/p/17646403.html

相关文章

  • ETL之apache hop数据增量同步功能
    ETL增量数据抽取CDC概念:ChangeDataCapture,变化的数据捕获,也称:【增量数据抽取】(名词解释)CDC是一种实现数据的增量抽取解决方案,是实现【ETL整体解决方案】中的一项子方案/子问题。(对CDC的定位)如何捕获变化的数据是增量抽取的关键,对捕获方法一般有2点要求:准确性:能够将业务系......
  • 成为Apache项目贡献者
    1、有4个主要的地方了解Apache项目:Apacheself-Jira:issues.apache.org/jira/secure/MyJiraHome.jspa邮件列表,该形式被广泛利用,尽量每天都抽出时间看一下在讨论什么: lists.apache.org项目官网,如shiro.apache.com,一般官网项目的资料更新比较快Apache官网:https://www.apache.o......
  • Kioptrix: Level 1 (#1) 古老的Apache Samba VULN
    0×01Vulnhub靶机渗透总结之Kioptrix:Level1(#1)......
  • OceanBase-系统回收日志参数验证enable_syslog_recycle和max_syslog_file_count
    作者:刘书盛热衷技术分享、编写技术文档原创作品oceanbase数据库原创内容未经授权不得随意使用、转载请联系小编并注明来源,谢谢!1、参数介绍enable_syslog_recycle     用于是否打开记录启动前的旧日志的开关   max_syslog_file_count  用于设置在回收......
  • apache开启php的伪静态模式,出现No input file specified
    Thinkphp教程中提供的APACHE伪静态模式出现Noinputfilespecified,打开.htaccess在RewriteRule后面的index.php教程后面添加一个“?”完整代码如下.htaccessRewriteEngineonRewriteCond$1!^(index.php|images|robots.txt)RewriteRule^(.*)$/index.php?/$1[QSA,PT,L......
  • springboot 打包 时报错:The specified user settings file does not exist: F:\opt\
     解决方法:  ......
  • Apache SeaTunnel社区迎来新Committer!
    采访&编辑|DebraChen个人简介姓名:马骋原公司:恒生电子GitHubID:rewerma个人擅长研究领域:java中间件、微服务、大数据等您为社区提交了什么贡献?具体方案可以描述一下吗?为SeatTunnel提交SQLTransformplugin的PR,通过SQL解析器生成物理执行计划,自建函数库执行数据转换......
  • Apache DolphinScheduler 支持使用 OceanBase 作为元数据库啦!
    DolphinScheduler是一个开源的分布式任务调度系统,拥有分布式架构、多任务类型、可视化操作、分布式调度和高可用等特性,适用于大规模分布式任务调度的场景。目前DolphinScheduler支持的元数据库有Mysql、PostgreSQL、H2,如果在业务中需要更好的性能和扩展性,可以在DolphinScheduler中......
  • Java踩坑1.Plugin org.apache.maven.plugins:maven-install-plugin:2.5 could not
    首次运行maveninstall或任何一个插件时,报错:Downloadingfromhuaweicloud:https://repo.huaweicloud.com/repository/maven/org/apache/maven/plugins/maven-install-plugin/2.5/maven-clean-plugin-2.5.pom[INFO]---------------------------------------------------------......
  • Apache hive安装配置的相关步骤
    1、Hive下载地址http://archive.apache.org/dist/hive/我选择的是Hive的这个版本:然后再选择这个:压缩包下载完成:2、将下载好的压缩包利用FinalShell传到虚拟机的root/software文件目录下面3、将该压缩包在该目录下解压tar-zxvfapache-hive-3.1.2-bin.tar.gz解压成功......