Kyligence AI 服务 - 让大模型完成准确、可靠的数值计算和回答! 立即了解更多
AI 数智助理
Kyligence Zen Kyligence Zen
Kyligence Enterprise Kyligence Enterprise
Kyligence Turbo Kyligence Turbo
指标平台解决方案
OLAP 解决方案
行业解决方案
客户总览
金融
零售
制造
医药
其他
云平台
BI
寻求合作
资源
Kyligence Enterprise
Kyligence Zen
培训
Apache Kylin
Byzer
Gluten
博客
关于
市场活动
Apache Kylin 上游通常有复杂的数据 ETL 过程,如 Hive 入库、数据清洗等;下游有报表刷新,邮件分发等。集成 Apache DolphinScheduler 后,Kylin 可以方便地将大数据平台各组件串联起来,让各个任务通过 DAG 统一调度。
Apache Kylin 是一个支持海量大数据的在线分析引擎,需要离线或流式地从 Apache Hive、Apache Kafka 加载数据。通常当上游数据准备好以后,用户需要使用 Kylin 的 Web 界面或 API 触发以生成数据加载的任务。为了让整个工作流自动化起来,通常要结合一些任务调度平台,如 Oozie,Linux crontab 等。本文将介绍如何使用 Apache DolphinScheduler 这个新的开源平台跟 Kylin 进行集成完成数据构建。
Apache DolphinScheduler(incubating)(简称 DS) 是一个 Apache 孵化器项目,是由国内企业易观开源的大数据项目,是一个面向大数据应用的分布式工作流任务调度系统,之前叫 EasyScheduler。目前,DS 在国内已经有一定规模的用户基础,包括美团 、平安、雪球等。(官网:https://dolphinscheduler.apache.org/)
这里我们引用一下 DS 刚开源时的介绍 [1]:相信做过数据处理的伙伴们对开源的调度系统如 Oozie、Azkaban、Airflow 应该都不陌生,在使用这些调度系统中可能会有这样的体验:比如配置工作流任务不能可视化、任务的运行状态不能实时在线查看、 任务运行时不能暂停、不能支持参数传递、不能补数、不能多租户使用、调度系统不高可用等等问题所烦扰过。Easy Scheduler 正是在这种背景下应运而生,其目标就是为使调度更加 easy,更可以从其中文名“易调度”看出我们的初衷。
下图是一个跟 Azkaban、Airflow 的多方面对比:
从这个图上可以看出,DS 设计之初就考虑了高可用、多租户、可视化等高级功能,也支持扩展任务类型等,相比于其它工具来说,更适合企业内的复杂场景,可视化的操作界面也非常适合作为平台交给各部门自助使用(注:Airflow 目前也有多租户的支持)。
为了验证 DS 的功能,我们决定先在一个单机上进行安装。参考文档后,发现它的安装配置步骤稍多,于是先尝试 Docker 安装;可惜的是,它的 Dockerfile 跟当前代码有一点不匹配,加上国内的网络条件,Docker build 较慢屡次失败,于是就放弃了,尝试单机用二进制包安装。
从官网 [2] 下载 1.2.0 版本的安装包,分前端和后端两个包;前端是一些静态文件,不到 2MB;后端是主程序,较大 127MB;前后端需要分别安装和配置。(据了解从 1.2.1 后,前后端将不再分离。)
参考前端安装文档 [3],将资源放到某个目录,然后安装和配置 Nginx,让其 8888 端口的静态资源从 DS 的前端目录获取,如果是 API 的调用,转给后端服务 12345 端口;了解 Nginx 配置的话这块不难。小注意一下,它的安装脚本 install-dolphinscheduler-ui.sh 会自动安装 Nginx,如果你的系统中已经有 Nginx 服务的话,需要手动修改脚本以避免重新安装。
后端的安装相对比较复杂一些。首先你需要准备前置条件:
1. Linux 服务器一台,CentOS 6/7 或 Ubuntu;
2. 创建一个 DolphinScheduler 的 Linux 账户,有 sudo 权限,且开启免密码登录;因为要切换不同租户,所以单机安装也需要这个账户;
3. MySQL 5.5 或以上;起初我的 MySQL 版本较低(5.1),遇到 DB 初始化脚本失败的问题,切换高版本 MySQL 后解决;(注:目前 MySQL 8 也不支持);
4. Zookeeper,用于协调多个节点的状态。
安装的时候,需要仔细查看它的安装文档 [4];文档中介绍了多节点的自动部署(为有自动化一键安装脚本点赞),但没有介绍单节点的手动部署。我先用了它的自动部署脚本 install.sh,发现略有点复杂,在 DS 开发者的指导下改用手动部署。下面是一些注意事项:
1. 安装和启动服务的时候,切换到 dolphinscheduler用户,建议不要用 root;使用 root 会让一些新创建的目录权主是 root,其它用户不可访问;
2. 安装目录不要放到 /root 等高权限目录,最好放到 /opt 或 dolphinscheduler 的 home 目录下;
3. MySQL JDBC 连接的配置,除了在 conf/application-dao.properties 以外,还需要在 conf/quartz.properties 也里配置一下;
4. DS 的安装目录,需要显式地在 conf/common/common.properties 里配置一下,默认的安装目录 /data1_1T/dolphinscheduler 很可能不是你的安装路径;
5. 在 conf/config/run_config.conf 中配置各个节点的机器名;如果单机的话,配置本机的机器名;
6. 在 conf/zookeeper.properties 中配置 zk 地址;
7. 启动使用 scripts/start-all.sh 和 scripts/stop-all.sh 来启动和停止;如果不正常,检查在 logs 目录下的日志;
8. 确保 Nginx 之前已经正常启动。
如果一切正常的话,浏览器打开 http://<host_name>:8888 就会出现 DS 的登录界面,初始用户/密码为:admin/dolphinscheduler123。
按照使用操作手册,先创建项目,再创建一个租户(tenant);租户就是运行任务的 Linux 用户。
创建租户后,还要将 DS 的用户跟租户进行绑定,默认的 admin 用户初始是没有租户的,所以需要进行绑定后才可以执行任务,切记;
在这之后,你就可以进入项目,创建进程(process)了,DS 提供了可视化的界面,让你可以图形化拖拽地方式定义工作流 DAG:
这里看到,DS 内置了若干种任务,例如 Spark, Flink,MapReduce,Shell, HTTP,Python 等,基本足够普通调度需求了。
我们的测试场景是 Kylin 的流式构建,需要每五分钟触发一次任务;Kylin 提供 Rest API 供外部触发,但本身不提供调度器;通常用户使用外部调度器或 Linux crontab 等服务来执行;使用 Linux crontab 最简单,但是难以监控和修改,因此一些用户会觉得麻烦。所以我们可以集成 DS 和 Kylin 做到一站式调度和监控。这里触发Kylin的构建任务,可以用 shell(如 curl)命令,也可以用 HTTP(post、put 等)的方式进行;这里我选择用 shell 因为它非常简单,在输入之前,先确保这个 shell 命令是无误的,手动在 Linux 命令行中执行验证。
随后对这个进程指定定时器(cron),语法基本上跟 Linux crontab 相同,用户还可以指定生效范围,通知策略等:
之后分别上线这个定时器,以及这个进程;过一会儿我们就会在平台上看到执行的任务:
执行的详细日志也是可以直接在线查看:
Kylin 这边,我们看到任务被正常触发执行:
继续一天,两边平台都很稳定,180 多次调度都成功执行:
DolphinScheduler 是一款功能强大的大数据调度平台。一次配置好任务流,后续就可以靠 DS 自动定时调度了,任务成功或出错都可以得到邮件通知。如果任务较多,可以水平添加更多节点以扩展资源。Kylin 上游通常有复杂的数据 ETL 过程,如 Hive 入库,数据清洗等;下游有报表刷新,邮件分发等;有了它可以方便地将大数据平台各组件串联起来,让各个任务通过 DAG 统一调度。此次时间有限,没有进一步测试 DS 的高级功能,后续如果社区基于插件机制开发出 Kylin 的触发器,对用户会更加简单易用。
在此也非常感谢 DolphinScheduler 社区的代立冬等小伙伴们,非常热心地帮忙回答和解决问题!
参考资料:
[1]http://www.clickhouse.com.cn/topic/5cab67b369c415035e68d526
[2]https://dolphinscheduler.apache.org/en-us/docs/release/download.html
[3]https://dolphinscheduler.apache.org/en-us/docs/1.2.0/user_doc/frontend-deployment.html
[4]https://dolphinscheduler.apache.org/en-us/docs/1.2.0/user_doc/backend-deployment.html
[5]https://dolphinscheduler.apache.org/en-us/docs/1.2.0/user_doc/quick-start.html
近年来,随着商业环境的竞争日益激烈,企业对于实时数据服务的需求急剧增加。Kyligence 在服务众多客户的过
数据要素在银行各业务领域和流程中发挥着至关重要的作用,面对激烈的市场竞争和客户需求,银行越来越注重从数据管理中
作为一名消费者,炎热的夏天我们会走进一家便利店,从冰柜中选出一瓶汽水;下午工作有点累了,我们会在公司的自动贩卖
2024 年伊始,Kyligence 联合创始人兼 CEO 韩卿(Luke)分享了对 AI 与数据行业的一些战
房地产行业是我国国民经济中的重要支柱产业之一,在房地产市场供求关系发生重大变化的当下,房企面临多重挑战。Kyl
今年年初,Kyligence 高级副总裁兼合伙人葛双寅(Silas Ge)受邀在阿斯利康“跃行致远三十周年年会
2024 年伊始,Kyligence 联合创始人兼 CEO 韩卿在公司内部的飞书订阅号发表了多篇 Rethin
400 8658 757
工作日:10:00 - 18:00
已有账号? 点此登陆
预约演示,您将获得
完整的产品体验
从数据导入、建模到分析的全流程操作演示。
行业专家解惑
与资深行业专家的交流机会,解答您的个性化问题。
请填写真实信息,我们会在 1-2 个工作日内电话与您联系。
全行业落地场景演示
涵盖金融、零售、餐饮、医药、制造等多个行业,最贴合您的业务需求与场景。
Data + AI 应用落地咨询
与资深技术专家深入交流,助您的企业快速落地 AI 场景应用。
立即预约,您将获得
精准数据计算能力:
接入高精度数值计算大模型服务,为您的企业级AI应用提供强大支持。
个性化业务场景解决方案:
量身定制的计算模型和数据分析服务,切实贴合您的业务需求和应用场景。
Data + AI 落地应用咨询:
与资深专家深入探讨数据和 AI 如何帮助您的企业加速实现应用落地,构建更智能的数据驱动未来。
申请体验,您将获得
体验数据处理性能 2x 加速
同等规模资源、同等量级数据、同一套数据处理逻辑,处理耗时下降一半
专家支持
试用部署、生成数据、性能对比各操作环节在线支持