dolphinscheduler任务调度指南

img

GitHub地址:https://github.com/apache/incubator-dolphinscheduler

dolphinscheduler的集群环境配置有几个要点:

1、元数据库配置及初始化

2、运行环境的配置

3、集群安装参数、上传文件路径及告警配置

其中环境的配置直接影响后面的任务调度。以阿里云E-Mapreduce为例,集群的环境变量及常见类路径部署在/etc/profile.d/*.sh中,如果在任务运行过程中出现命令丢失和jar包缺失,可以去$PATH中去找环境变量。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
export HADOOP_HOME=/usr/lib/hadoop-current
export HADOOP_CONF_DIR=/etc/ecm/hadoop-conf
export SPARK_HOME=/usr/lib/spark-current
export HADOOP_CLASSPATH=/usr/lib/hadoop-current/lib/*:/usr/lib/tez-current/*:/usr/lib/tez-current/lib/*:/etc/ecm/tez-conf:/opt/apps/extra-jars/*:/usr/lib/spark-current/yarn/spark-2.4.5-yarn-shuffle.jar
#export SPARK_HOME2=/opt/soft/spark2
#export PYTHON_HOME=/opt/soft/python
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
export HIVE_HOME=/usr/lib/hive-current
export FLINK_HOME=/usr/lib/flink-current
#export DATAX_HOME=/opt/soft/datax/bin/datax.py
export SQOOP_HOME=/usr/lib/sqoop-current

export HIVE_CONF_DIR=/etc/ecm/hive-conf
export HCAT_HOME=/usr/lib/hive-current/hcatalog

export PATH=$SQOOP_HOME/bin:$HADOOP_HOME/bin:$HCAT_HOME/bin:$SPARK_HOME/bin:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH:$FLINK_HOME/bin:$DATAX_HOME:$PATH

如果这3点中有一点没有做好,将会影响dolphinscheduler的正常工作和任务调度。

在部署好集群后,会在master和worker上共启动5种不同的进程:

1
2
3
4
5
MasterServer         ----- master服务    
WorkerServer ----- worker服务
LoggerServer ----- logger服务
ApiApplicationServer ----- api服务
AlertServer ----- alert服务

进入web后首先要进行一些初始化工作,例如租户,用户的创建,数据源的配置等,然后我们可以进行任务调度:

工作台有几种常用的任务例如flink,spark、sql、shell脚本都可以通过托拉拽的方式确定任务调度流程。

在完成任务流程设计后,可以通过定时调度,失败邮箱报警和企业微信报警来题型开发者任务过程出现的问题并及时解决。

在进行任务调度过程中,可能会出现一些程序本身设计问题而导致的bug,

出现任务调度异常,或者任务链卡死,首先去logs下跟踪master和worker的日志,一般出错都会在日志中找出原因,常见的bug如下:

1
2
3
4
5
6
7
8
9
[ERROR] 2021-04-08 14:58:51.045 org.apache.dolphinscheduler.server.master.processor.queue.TaskResponseService:[169] - worker response master error
org.springframework.dao.DataIntegrityViolationException:
### Error updating database. Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'app_link' at row 1
### The error may exist in org/apache/dolphinscheduler/dao/mapper/TaskInstanceMapper.java (best guess)
### The error may involve org.apache.dolphinscheduler.dao.mapper.TaskInstanceMapper.updateById-Inline
### The error occurred while setting parameters
### SQL: UPDATE t_ds_task_instance SET flag=?, task_json=?, pid=?, app_link=?, task_type=?, task_instance_priority=?, log_path=?, host=?, start_time=?, worker_group=?, state=?, process_instance_id=?, process_definition_id=?, executor_id=?, alert_flag=?, execute_path=?, max_retry_times=?, retry_times=?, submit_time=?, name=?, retry_interval=?, end_time=? WHERE id=?
### Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'app_link' at row 1
; Data truncation: Data too long for column 'app_link' at row 1; nested exception is com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'app_link' at row 1

这种问题的原因在于dolphinscheduler元数据设计时的局限性,应该将t_ds_task_instance表中的app_link字段修改成text类型,即可解决问题。

dolphinscheduler是一个apache正在孵化中的开源项目,社区建设还不是很成熟,开源社区有GitHub,slack,微信公众号交流群:

https://app.slack.com/client/T01L3LB96V7/C01L3LB9YMP/thread/C01L3LB9YMP-1617861424.034300

https://github.com/apache/incubator-dolphinscheduler/issues

微信公众号:dolphin-scheduler

也可以通过我(微信:ycfnsq97)邀请大家加入apache dolphinscheduler社区微信交流群。

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2020-2021 ycfn97
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信