seatunnel及web的正常安装流程见
Seatunnel及web搭建流程-CSDN博客
一步一步按照以上博客流程进行安装,正常情况下能顺利跑通seatunnel及web的demo。
此博客为安装过程中遇到的一些棘手问题总结。
常见错误问题
正常安装后,都会遇到报错,下面是总结的一些常见的异常问题
1.java.lang.NoClassDefFoundError: ***/sun/jersey/client/impl/CopyOnWriteHashMap
主要原因是,hadoop相关的jar包找不到,需要将jar包放到lib下。
将seatunnel-hadoop3-3.1.4-uber-2.3.3-optional.jar放到seatunnel的lib包下即可。下载方法见文章后面的详细介绍。
2.SqlServer-cdc的jar包安全问题
使用高版本的mssql的jdbc的jar包时,有安全检查机制,会导致进行使用seatunnel的sqlserver-cdc时报异常:
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
我使用的是mssql-jdbc-11.2.3.jre8.jar,结果一直报异常,添加了trustServerCertificate=true;encrypt=true参数也会报错(只针对seatunnel的SqlServer-cdc场景,在jdbc场景使用此jar包正常),经过查看源码与issue,发现源码中是低版本mssql-jdbc-9.4.1.jre8.jar,替换此jar包后SqlServer-cdc在SqlServer2016上能够实现cdc功能。
有的同学使用的是mssgl-jdbc-9.2.0.jre8.jar,也可以实现SqlServer-cdc功能。
jar包下载地址Central Repository: ***/microsoft/sqlserver/mssql-jdbc
3.SqlServer 2016无法开启表的cdc
安装流程CDC 任务数据源权限配置 - SqlServer 权限配置 - 《EasyData用户手册》进行开启SqlServer 2016的cdc功能时,遇到问题是:可以开启SqlServer的库的cdc,但是在开启表的cdc时,一直无法执行成功,一个可能得原因是,计算机的名称发生了变化,需要将计算机的名称还原到安装SqlServer 2016的时候的名称。
sql - 在表级别启用CDC时出错 - Thinbug
mvn加速下载seatunnel相关jar包
安装seatunnel过程中,解压文件后官方默认提供的connector的jar包只有2个,要想连接mysql,oracle,SqlServer,hive,kafka,clickhouse,doris等时,还需下载对应的jar包。
如果机器可以连接外网,可使用命令方式sh bin/install-plugin.sh直接下载,这个命令会 自动下载文件apache-seatunnel-2.3.3/connectors/plugin-mapping.properties中指定的所有connector的jar包,每个人可根据自己情况自行增减需要的connector依赖包。
加速下载connector相关jar包
seatunnel下载connector的jar时,使用mvnw来下载jar包,而且是从https://repo.maven.apache.org 下载,速度及其缓慢,且公司机器不能上外网,改用自己windows本地的mvn,从阿里云mvn源下载。
修改其安装插件相关脚本,复制bin目录下install-plugin.sh重命名为install-plugin-mvn.sh
替换脚本中的${SEATUNNEL_HOME}/mvnw为mvn,即可使用本地mvn,配合阿里云的mvn源,可加速下载。
然后执行install-plugin-mvn.sh即可。原本2个小时没有下载完成的,改写后几分钟下载完成了。
将下载后的jar包复制到connectors/seatunnel/下即完成connector的jar包补充。
注意:在安装seatunnel的时候可能会出现java.lang.NoClassDefFoundError错误,大部分时候是因为缺少apache hadoop的jar包,在执行install-plugin-mvn.sh的时候会下载一个jar包seatunnel-hadoop3-3.1.4-uber-2.3.3-optional.jar,存放于上一级目录的lib文件夹下,如果是在其他路径下载jar包,将下载的seatunnel-hadoop3-3.1.4-uber-2.3.3-optional.jar放在seatunnel的lib文件夹下,然后就可以解决这个问题了。
datasource相关jar包
安装好seatunnel-web1.0.0后,新建数据源时,无下拉框和数据源选项,
查找资料中官方大佬给出的解决方式如下:
[Improve] Add "download_datasource.sh" for downloading datasource. by FlechazoW · Pull Request #136 · apache/seatunnel-web · GitHub
注意,这里的解决方式需要下载最新的seatunnel-web源代码,执行download_datasource.sh下载数据源jar包
查看源代码,也是使用mvnw的方式下载,windows上进行修改
download_datasource.sh复制到 D:\jar\seatunnel\script后改名为download_datasource-mvn.sh,替换"$SEATUNNEL_WEB_HOME"/mvnw为本地环境变量中配置好的mvn
执行sh download_datasource-mvn.sh命令就会将jar包下载到相应为文件夹中
下载完成后,将相应的jar包放置到apache-seatunnel-web的libs下,重启之后,显示正常
注意事项
元数据和数据源的jar包还需要要复制到后端lib文件夹/opt/seatunnel/backend/apache-seatunnel-2.3.3/lib
否则在配置好web任务时,后台根本不执行!!!
相关问题
1.配置阿里云mvn源加速
如何配置的阿里云mvn源
Maven如何配置阿里镜像及安装全步骤_maven配置阿里云镜像-CSDN博客
2.如何在windows环境下执行shell命令
因为所有linux机器不能外网,先在windows下执行shell脚本,下载jar包,然后复制到相关机器即可。如何在windows下执行shell命令,可参考下面的文章。
Windows中运行Linux命令的6种方法https://www.eet-china.***/mp/a228539.html