业务需求:
将原有自建的hadoop集群以及hive、dolphinscheduler组建迁移至数据中台
遇见的问题:
在dolphinscheduler调用hive时,尤其是指定tez引擎运行相关的sql的时候会出现timeout的情况
版本
dolphinscheduler 2.0.9
大数据集群
huaweiIcloude hadoop 3.1.1-hw (MRS 3.0.X)
已经解决的问题有:
1.dolphinscheduler兼容性问题,MRS使用量存算分离,导致远端数据不能存储
原因:dolphinscheduler有scheme校验,在2.0.9时,桶文件系统仅支持s3,3.X版本支持阿里的文件系统
解决方式:1.将dolphinscheduler的源码编译使其支持obs协议,并相应的提升hadoop版本,最好是直接使用华为的相关jar进行编译,相关任务运行的脚本也要修改至支持obs
2.将华为大数据客户端的jar替换掉dolphinscheduler的jar
ps:两种方式均测试过,可以满足调度需求
2.spark等环境冲突
解决方式:建议在调度集群中存在hadoopclient,直接调用和集群版本一致的组建版本
使用时遇到的最大问题:
dolphinscheduler调用hive时,尤其是指定tez引擎运行相关的sql的时候会出现timeout的情况
问题描述:
简单的sql,可以调通,文本较长的sql的,在制定tez引擎时,大概率出现timeout情况(集群/队列资源充足)
解决过程:
1.检查版本冲突,2.0.6 / 2.0.9重新构建后,问题仍在
2.检查配置文件,没有hive链接池的相关配置
3.最终锁定在Hikari,一个开源的链接池,dolphinscheduler并没有对其中的超时时间进行限制
搞!下载相应的开源版本,修改超时时间,替换,搞定!!
历时近半个月的加班结束!!!
相关jar 华为的建议直接拉取集群中 hikari如下,自取