0%

gitlab搭建在自家的nas上,k3s部署于阿里云的ecs,自己提交代码后,通过gitlab runner自动执行pipeline。
cicd自动执行2个操作:

  1. nas代码自动备份到github
  2. 博客自动发布到github pages
    阅读全文 »

dolphinscheduler的调度任务有flink流任务,flinkx数据同步,默认仅支持flink on yarn,
本文记录了折腾flink on k8s的踩坑过程,主要难点是flink on k8s自身不支持pvc带来的各种妥协,
镜像的制作,hive的兼容。

阅读全文 »

dolphinscheduler这个调度任务有spark,spark默认支持yarn。
本文主要梳理sparkTask如何支持早k8s部署的思路。

理论上dolphinscheduler只是一个调度平台,和task的resource provider是解耦合的。flink和spark这方面本身设计做的比较好,调试支持local,生产支持k8s,yarn,mesos。

目前ds的task从资源的角度可以分2类:

  1. ds自带的worker中作为独立的进程,无限制的使用worker的计算资源。如:shell,python;
  2. 任务提交到远程计算服务执行,本地和远程的计算服务保持连接轮询获取执行结果。如:http,sql,procedure,mapreduce,spark,sqoop,flink等。

在云原生时代,
第1类任务:只需要制作对应的镜像,直接提交即可。
第2类任务:需要对应的task类型支持k8s部署,比如spark on k8s ,flink on k8s,然后客户端提交需要做各种pvc的配置。

目前只hive,sqoop,mapreduce等都是继承AbstractYarnTask。
和具体的实现绑定,应该是定义远程计算执行的task接口,task中根据需要,组合yarn或k8s等实现。

阅读全文 »

dolphinscheduler的调度任务有spark,默认仅支持spark on yarn,
本文记录了折腾spark on k8s的踩坑过程,主要难点是镜像的制作,kerberos认证和hive的兼容

阅读全文 »

dolphinscheduler的调度任务有flink流任务,flinkx数据同步,这两类任务目前是批任务的思路,阻塞等待任务结束,缺少流任务的异步监控,需要做一些非阻塞的改造。

阅读全文 »

dolphinscheduler中使用zookeeper实现自杀机制,用于解决
dolphinscheduler和zookeeper网络分区时发生的脑裂问题,
比如master容错时,当前master与zk失联,任务被其他master接管,然后master又脸上了,这个时候要master需要自杀,避免master更新db造成混乱

阅读全文 »

binlog日志实时采集,支持按事物聚合输入到flink udf中进行处理

阅读全文 »

dolphinscheduler可以通过shell节点校验数据是否符合要求

变量定义

1
2
PT_DATE=${system.biz.date}
PT_PATH=/user/hive/warehouse/default.db/test/pt_d=${PT_DATE}

校验hdfs分区是否存在

1
2
3
4
5
6
7
8
9
10
set -e

kinit -kt /etc/krb5/geosmart.keytab geosmart
hdfs dfs -test -e ${PT_PATH}
if [ $? -eq 0 ] ;then
echo 'partition ${PT_PATH} exist'
exit 0
fi
echo 'partition ${PT_PATH} not exist'
exit 1

校验hive表中数据行数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
set -e

TABLE='default.test'
MIN_PT_COUNT=5000

pt_count=`spark-sql \
--keytab /etc/krb5/geosamrt.keytab \
--principal geosamrt -S \
-e "select count(1) from $TABLE where pt_d='${PT_DATE}'"
`

pt_count=`echo "$pt_count" | tail -1`

if [ "$pt_count" -gt "$MIN_PT_COUNT" ] ;then
echo "$TABLE of partition ${PT_DATE},count=[$pt_count],greater than min[$MIN_PT_COUNT]"
exit 0
fi
echo "$TABLE of partition ${PT_DATE},count=[$pt_count],lower than min[$MIN_PT_COUNT]"
exit 1

dolphinscheduler这个dag的任务类型就差flink就都玩个遍了.
简单记录一下,flink word count入门小实验。

阅读全文 »

visualis是微众基于宜信davinci,为dss定制二开的BI工具。界面清爽,功能齐全。
如果想独立部署一个BI工具,单独接davinci就可以。
davinci设计理念面向的是开发者,不是直接面向最终业务用户的,对非专业用户来说,用户体验不是特别好。

阅读全文 »

DataSphere Studio(DSS)是一个数据应用集成平台的开源方案,已集成scriptis数据开发IDE,davinci可视化报表,和qualitis数据质量。
另外dss最强的是支持采用DAG工作流将上述组件进行可视化调度编排,目前调度系统支持接入azkabanairflow,也可自行集成其他调度系统,调度任务底层的作业执行引擎可接入linkis计算中间件;

本文主要的关注点是dss的组件构成,以及dss和linkis的组件交互

阅读全文 »