1、为什么选用apache–dolphinscheduler
轻松管理复杂的任务工程
支持跨项目和跨工作流程的任务依赖
支持Kill、暂停和恢复操作
任务支持以租户、Worker分组组和环境中隔离运行
每个任务都可以修改输出参数,并将其传递给后续任务
在一分钟内创建你的工作流程
通过拖拉拽的工作流创建方式提高效率
支持Python、Yaml和Open Api的方式生成工作流
支持将一个工作流作为另一个工作流的子流程执行
高并发、高吞吐量、低延迟和稳定地执行百万个量级任务
多Master、多Worker设计
自动缓存任务队列中的任务,以避免任务过多时服务器堵塞
Master和Worker支持在线和离线状态
强大的数据回填和工作流版本控制
根据计划时间(特殊日期范围或特殊的日期列表)批量执行任务
以串行或并行模式批量运行任务
在不影响工作流模板的情况下,工作流实例支持修改、回滚和重新运行
2、四大特性
可靠性高
去中心化的多Master和多Worker服务对等架构, 避免单Master压力过大,另外采用任务缓冲队列来避免过载
简单易用
DAG监控界面,所有流程定义都是可视化,通过拖拽任务完成定制DAG,通过API方式与第三方系统集成, 一键部署
丰富的使用场景
支持多租户,支持暂停恢复操作. 紧密贴合大数据生态,提供Spark, Hive, M/R, Python, Sub_process, Shell等近20种任务类型
高扩展性
支持自定义任务类型,调度器使用分布式调度,调度能力随集群线性增长,Master和Worker支持动态上下线
3、功能
以DAG图的方式将Task按照任务的依赖关系关联起来,可实时可视化监控任务的运行状态
支持丰富的任务类型:Shell、MR、Spark、SQL(mysql、postgresql、hive、sparksql),Python,Sub_Process、Procedure等
支持工作流定时调度、依赖调度、手动调度、手动暂停/停止/恢复,同时支持失败重试/告警、从指定节点恢复失败、Kill任务等操作
支持工作流优先级、任务优先级及任务的故障转移及任务超时告警/失败
支持工作流全局参数及节点自定义参数设置
支持资源文件的在线上传/下载,管理等,支持在线文件创建、编辑
支持任务日志在线查看及滚动、在线下载日志等
实现集群HA,通过Zookeeper实现Master集群和Worker集群去中心化
支持对Master/Worker cpu load,memory,cpu在线查看
支持工作流运行历史树形/甘特图展示、支持任务状态统计、流程状态统计
支持补数
支持多租户
支持国际化
4、地址
官网地址:https://dolphinscheduler.apache.org/zh-cn
源码地址:https://gitee.com/caoes/DolphinScheduler/
5、环境准备
配置主机名、关闭SELINUX、关闭防火墙、安装jdk、安装mysql数据库、安装zookeeper,这些步骤请参考我之前的文章:
Cloudera Manager6.3.2详细安装教程,部署使用手册-CSDN博客
linux centos下载安装mysql详细教程(5.6.41和5.7.25)_linux版mysql5.6下载-CSDN博客
mysql配置详解(端口号、连接数、数据和日志目录)-CSDN博客
在这里不一一赘述
6、集群部署
[root@enn–hadoop–cm easyScheduler]$ tar -zxvf apache–dolphinscheduler-3.2.0-bin.tar.gz
[root@enn–hadoop–cm easyScheduler]$ useradd dolphinscheduler
[root@enn–hadoop-cm easyScheduler]$ echo “这里写dolphinscheduler用户的密码” | passwd —stdin dolphinscheduler
[root@enn–hadoop-cm easyScheduler]$ sed –i ‘$adolphinscheduler ALL=(ALL) NOPASSWD: NOPASSWD: ALL’ /etc/sudoers
[root@enn–hadoop-cm easyScheduler]$ sed -i ‘s/Defaults requirett/#Defaults requirett/g‘ /etc/sudoers
[root@enn–hadoop-cm easyScheduler]$ chown -R dolphinscheduler:dolphinscheduler apache-dolphinscheduler-3.2.0-bin/
[root@enn–hadoop-cm easyScheduler]$ su – dolphinscheduler
[dolphinscheduler@enn–hadoop-cm easyScheduler]$ ssh–keygen -t rsa
[dolphinscheduler@enn–hadoop-cm easyScheduler]$ ssh–copy–id enn–hadoop–mysql–serve
[dolphinscheduler@enn-hadoop-cm easyScheduler]$ ssh–copy–id enn-kafka-01
[dolphinscheduler@enn-hadoop-cm easyScheduler]$ ssh–copy-id enn-kafka-02
[dolphinscheduler@enn-hadoop-cm easyScheduler]$ ssh–copy-id enn-kafka-03
[dolphinscheduler@enn-hadoop-cm easyScheduler]$ cd apache-dolphinscheduler-3.2.0-bin/bin/env/
配置jdk、mysql、zookeeper
[dolphinscheduler@enn-hadoop-cm env]$ vim dolphinscheduler_env.sh[dolphinscheduler@enn-hadoop-cm env]$ vim install_env.sh
master模块,提供工作流管理和编排服务。
worker模块,提供任务执行管理服务。
alert 告警模块,提供 AlertServer 服务。
api web应用模块,提供 ApiServer 服务。
common 通用的常量枚举、工具类、数据结构或者基类
dao 提供数据库访问等操作。
remote 基于 netty 的客户端、服务端
service service模块,包含Quartz、Zookeeper、日志客户端访问服务,便于server模块和api模块调用
ui UI界面模块下载mysql连接器 mysql–connector–java-8.0.24.jar
[dolphinscheduler@enn-hadoop-cm env]$ cp /data/software/mysql–connector–java-8.0.24.jar /data/easyScheduler/apache-dolphinscheduler-3.2.0-bin/api–server/libs
[dolphinscheduler@enn-hadoop-cm env]$ cp /data/software/mysql–connector–java-8.0.24.jar /data/easyScheduler/apache-dolphinscheduler-3.2.0-bin/alert–server/libs
[dolphinscheduler@enn-hadoop-cm env]$ cp /data/software/mysql–connector–java-8.0.24.jar /data/easyScheduler/apache-dolphinscheduler-3.2.0-bin/master-server/libs
[dolphinscheduler@enn-hadoop-cm env]$ cp /data/software/mysql–connector–java-8.0.24.jar /data/easyScheduler/apache-dolphinscheduler-3.2.0-bin/worker–server/libs
[dolphinscheduler@enn-hadoop-cm env]$ cp /data/software/mysql–connector–java-8.0.24.jar /data/easyScheduler/apache-dolphinscheduler-3.2.0-bin/tools/libs
连接mysql,初始化dolphinscheduler数据库
[dolphinscheduler@enn-hadoop-cm env]$ mysql -uroot -p
mysql> CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> GRANT ALL PRIVILEGES ON dolphinscheduler.* TO ‘dolphinscheduler’@’%’;
立即生效
mysql> FLUSH PRIVILEGES;
mysql> exit;
[dolphinscheduler@enn-hadoop-cm env]$ cd /data/easyScheduler/apache-dolphinscheduler-3.2.0-bin/tools/bin
初始化dolphinscheduler数据库,生成dolphinscheduler所需要的各种表。
[dolphinscheduler@enn-hadoop-cm bin] bash upgrade–schema.sh
查看生成的表
[dolphinscheduler@enn-hadoop-cm bin]$ mysql -uroot -p
mysql> use dolphinscheduler;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> show tables;
+—————————————-+
| Tables_in_dolphinscheduler |
+—————————————-+
| QRTZ_BLOB_TRIGGERS |
| QRTZ_CALENDARS |
| QRTZ_CRON_TRIGGERS |
| QRTZ_FIRED_TRIGGERS |
| QRTZ_JOB_DETAILS |
| QRTZ_LOCKS |
| QRTZ_PAUSED_TRIGGER_GRPS |
| QRTZ_SCHEDULER_STATE |
| QRTZ_SIMPLE_TRIGGERS |
| QRTZ_SIMPROP_TRIGGERS |
| QRTZ_TRIGGERS |
| t_ds_access_token |
| t_ds_alert |
| t_ds_alert_plugin_instance |
| t_ds_alert_send_status |
| t_ds_alertgroup |
| t_ds_audit_log |
| t_ds_cluster |
| t_ds_command |
| t_ds_datasource |
| t_ds_dq_comparison_type |
| t_ds_dq_execute_result |
| t_ds_dq_rule |
| t_ds_dq_rule_execute_sql |
| t_ds_dq_rule_input_entry |
| t_ds_dq_task_statistics_value |
| t_ds_environment |
| t_ds_environment_worker_group_relation |
| t_ds_error_command |
| t_ds_fav_task |
| t_ds_k8s |
| t_ds_k8s_namespace |
| t_ds_plugin_define |
| t_ds_process_definition |
| t_ds_process_definition_log |
| t_ds_process_instance |
| t_ds_process_task_relation |
| t_ds_process_task_relation_log |
| t_ds_project |
| t_ds_project_parameter |
| t_ds_project_preference |
| t_ds_queue |
| t_ds_relation_datasource_user |
| t_ds_relation_namespace_user |
| t_ds_relation_process_instance |
| t_ds_relation_project_user |
| t_ds_relation_resources_user |
| t_ds_relation_rule_execute_sql |
| t_ds_relation_rule_input_entry |
| t_ds_relation_sub_workflow |
| t_ds_relation_udfs_user |
| t_ds_resources |
| t_ds_schedules |
| t_ds_session |
| t_ds_task_definition |
| t_ds_task_definition_log |
| t_ds_task_group |
| t_ds_task_group_queue |
| t_ds_task_instance |
| t_ds_tenant |
| t_ds_trigger_relation |
| t_ds_udfs |
| t_ds_user |
| t_ds_version |
| t_ds_worker_group |
+—————————————-+
65 rows in set (0.00 sec)
查看dolphinscheduler版本
mysql> select * from t_ds_version;
+—-+———+
| id | version |
+—-+———+
| 1 | 3.2.0 |
+—-+———+
1 row in set (0.00 sec)
mysql> exit;[dolphinscheduler@enn-hadoop-cm env]$ cd /data/easyScheduler/apache-dolphinscheduler-3.2.0-bin/api–server/conf
[dolphinscheduler@enn-hadoop-cm env]$ vim application.yaml
将默认的12345改为其他的
[dolphinscheduler@enn-hadoop-cm env]$ cd /data/easyScheduler/apache-dolphinscheduler-3.2.0-bin/bin/
[dolphinscheduler@enn-hadoop-cm env]$ sh ./install.sh
这个步骤会将cm服务器下的apache-dolphinscheduler-3.2.0-bin目录分发到其他四台服务器
1.dolphinscheduler server node config hosts:[ enn-hadoop-cm,enn-hadoop-mysql-server,enn-kafka-01 ]
2.master server node config hosts:[ enn-hadoop-cm,enn-hadoop-mysql-server,enn-kafka-01,enn-kafka-02,enn-kafka-03 ]
3.worker server node config hosts:[ enn-hadoop-cm:default,enn-hadoop-mysql-server:default,enn-kafka-01:default ]
4.alert server node config hosts:[ enn-hadoop-mysql-server ]
5.api server node config hosts:[ enn-hadoop-mysql-server ]
7、需要注意的问题
由于cdh收费,免费版本只能安装到cdh6.3.2,而安装这个版本的cdh,默认的zookeeper是3.4.5,而我们安装的dolphinscheduler3.2.0,最开始启动安装部署的时候,报错,要求的zookeeper的版本是3.8.0。市面上可以下载到3.8.1并且是chd版本的zookeeper的jar包,为:zookeeper-3.8.1.7.1.9.0-387.jar。但是实测之后,zookeeper无法启动。除了3.8.1之外,就只能用3.5.5,经过测试之后,zookeeper正常启动。运行dolphinscheduler的安装部署,也正常启动。经实测,dolphinscheduler功能正常。但是关于版本一致性的问题,实在是比较棘手的。
在此列一下CDH支持的组件版本对照关系:
Component | Component Version | Changes Information |
---|---|---|
Apache Avro | 1.8.2 | Changes |
Apache Flume | 1.9.0 | Changes |
Apache Hadoop | 3.0.0 | Changes |
Apache HBase | 2.1.2 | Changes |
HBase Indexer | 1.5 | Changes |
Apache Hive | 2.1.1 | Changes |
Hue | 4.3.0 | Changes |
Apache Impala | 3.2.0 | Changes |
Apache Kafka | 2.1.0 | Changes |
Kite SDK | 1.0.0 | Changes |
Apache Kudu | 1.9.0 | Changes |
Apache Solr | 7.4.0 | Changes |
Apache Oozie | 5.1.0 | Changes |
Apache Parquet | 1.9.0 | Changes |
Parquet-format | 2.3.1 | Changes |
Apache Pig | 0.17.0 | Changes |
Apache Sentry | 2.1.0 | Changes |
Apache Spark | 2.4.0 | Changes |
Apache Sqoop | 1.4.7 | Changes |
Apache ZooKeeper | 3.4.5 | Changes |
个人感觉cdh6.3.2可能不支持zookeeper3.8.0及以上版本,因为Apache ZooKeeper 3.4.10之前版本、3.5.0-alpha版本至3.5.5-beta版本,在身份验证/授权检测实现中存在安全漏洞,可使任意端点加入群集,修改内容。而在3.8.0之后,官方补上了这个漏洞,所以不能随意添加到CDH6.3.2,强行添加,会报错,不能识别zookeeper。
原文地址:https://blog.csdn.net/xinxizjz/article/details/134397542
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_32878.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!