8月27日,ChunJun社区联合OceanBase社区举办开源线下Meetup,围绕「构建新型的企业级数仓解决方案」主题,多位技术大牛和现场爱好者汇聚一堂,畅所欲言。

会上,袋鼠云大数据引擎开发专家莫问精心准备了一场主题为「袋鼠云开源框架基于数仓的一体化建设探索」的分享,通过“如何围绕数仓一体化建设进行探索”,“引进开源框架后如何解决建设难题”、“开源框架能够带来的收益”三个开发者极其关心的问题,助力快速了解袋鼠云开源框架在数仓一体化方面的能力。

秉持一直以来开源开放的初心,本文根据莫问演讲全文整理而来,欢迎分享给更多的开发者和爱好者共同学习、探讨。

开源框架诞生的背景

袋鼠云开源框架源于公司一站式数据服务产品-数栈。本着“取之开源,馈之开源”的决心,我们从基础设施、数据开发、任务运维三大方向分别开源了Taier、ChunJun以及ChengYing框架。

(开源框架事件时间线)

ChunJun——一种稳定、高效、易用的数据集成框架

• 稳定:接受过在上百家企业的生产环境下的长期考验

• 高效:大幅度降低用户的数据同步时常,使得每日tb级数据能够在数小时内同步完成

• 易用:开箱即用,无需额外的安装步骤

(ChunJun系统架构图)

Taier——一种分布式可视化的DAG任务调度框架

• 稳定性:通过HA+过载处理,降低了单点故障的同时增强了框架的高负载处理能力

• 易于扩展:从部署架构层面,可横向扩展集群增下框架调度能力;从引擎层面,支持自定义任务类型,满足非原生任务调度

• 界面可视化:可视化工作流配置以及任务监控管理

(Taier系统架构图)

ChengYing——一种全自动化的大数据运维工具

• 快捷部署:支持服务的一键式部署,降低人工的重复操作以及失误率

• 统一资源管理:支持对集群中所有产品包、主机以及集群资源管理

• 服务监控以及告警:支持各服务实例运行状态、健康检查、服务性能等指标检测,并能够将结果进行可视化、告警通知等操作

(ChengYing项目架构图)

数据仓库一体化探索之路

前期软硬件准备阶段

硬软件准备阶段是一个比较耗时的过程,而通过开源框架ChengYing,我们可以添加对应的需要被ChengYing管控的主机以及将要安装在这些主机上相关服务的产品包。

随后通过ChengYing统一进行主机配置,并一键式快捷部署。当安装好对应的服务之后,可通过Prometheus以及Granfan监控各个主机的cpu、io、memory指标以及告警。

除此之外,还能够对所安装的服务进行滚动重启以及健康状态监控,从添加机器到软件安装完毕,整个过程大大降低了人工的投入成本以及失误操作。

建设阶段——实时

实时数据处理的需求在飞速增长,在各行各业均已得到证实。而我们同时也看到,各行业、企事业单位对于实时数据处理的需求,与其目前的项目开发方式和配套工具不适配的问题也在逐渐凸显。

因此,我们引入实时数仓理念,通过ChunJun的实时采集、数据还原以及实时关联计算功能对实时数据进行处理和分层计算来满足日常的实时业务场景。

建设阶段——离线

实时计算是为了让我们能够做更快的决策,而离线计算是为了对数据进行分析,挖掘出潜在的价值。因此将数据从业务数据库每日定时同步到OLAP数仓中进行清洗、转换以及计算是对数据进行挖掘的基础。

数据的按需同步以及容错性是我们更为关心的一点。

实施运行阶段

在数据仓库实施运行阶段,我们则选择Taier来支持我们数仓任务的调度。它能为我们提供任务的批量管理的同时,让我们对整个项目的任务运行情况了如指掌。对于失败的任务,我们能够按需配置任务的失败重试策略,减少我们对任务上线后的运维成本。

另外,考虑多会有不同的角色在不同的集群进行开发,我们正好可以利用Taier多租户多集群资源隔离的特性,来实现不同用户在一套Taier集群上分别运行不同的任务在各自Hadoop集群上。

业务规模

经过上述对数据仓库一体化的探索,目前的业务规模已经达到以下数字:

• 数仓相关任务数量:2000+个

• 单日任务最高实例数量:60000+个

• Tb级数据同步:3小时以内

• 每日处理增量数据:20亿

• 统一管控的机器规模数量:40台

开源框架在探索路上的演进过程

业务痛点

在数据仓库一体化的这条探索之路上,结合具体业务,我们也遇到了一些痛点亟待解决:

● Kerberos认证

Kerberos是hadoop安全的解决方案,越来越多的客户在hadoop集群中选择开启kerberos。而Kerberos部署、配置过程的复杂性、client的认证如何续期以及多kdc场景下是对接hadoop的第一道屏障。

● 数据读写性能

金融行业的历史行为数据通常是tb甚至pb级别的,即使每日的增量数据也有10亿行+。当通过Chunjun对数据进行全量/增量同步时,反馈运行时常达不到预期,以致影响对业务的决策时间。

● 批流一体

不论是基于lambda架构的流批独立还是基于kappa的纯实时架构在运行久了之后缺点也会逐渐暴露出来;比如lambda架构的开发维护成本日益增高以及kappa架构的实时计算任务因极端数据乱序导致计算数据不准确从而面临数据质量上的问题。

Kerberos认证支持

通过ChengYing部署Hadoop服务以及KDC服务并配置好相关权限生成Keytab文件以及Krb5文件。用户只需要关心是否从以配置好kerberos的hadoop集群将用户对应权限的keytab、krb5文件一键上传到Taier集群中。

后面经过Taier调度的ChunJun任务都会从集群中下载上传的kerberos认证相关信息,随后进行kerberos认证以及自动续期。使得用户不用在写大量kerberos认证代码以及浪费更多的时间在kerberos上,既保证了数据的安全也保证了开发效率。

数据读写性能-自定义序列化格式

在经过我们多次对ChunJun性能的测试以及火焰图的分析之后,我们发现数据的序列化/以及反序列化是对读写性能损耗最大的一块,通过对Kryo序列化的研究,我们实现了自己的序列化格式:ColumnRowData。

相较于kryo序列化,ColumnRowData具有更为密集的存储,兼容null值以及减少不必要的数据传输等优势。

批流一体支持

当数据被采集到指定的存储层后,会结合存储类型以及业务时效性对数据进行常规的业务计算。ChunJun Sql能支持流批计算的能力来源于对元数据的统一管理以及在DataStream API上支持批执行模式。这样增强了作业的可复用性和可维护性,使得ChunJun作业可以在流和批两种执行模式之间自由进行切换并只需要维护一套代码,无需重新写任何代码。

除此之外,任务批流模式之间的切换计算也大幅度提升了数据最终的质量度以及准确性。

总结展望

引入开源框架后的收益

•引入ChunJun后业务开发周期缩短,开发人员只需专注于业务开发,无需关注底层的技术实现。大幅度降低了业务开发的整个生命周期

• 引入Taier后,技术同学专注业务开发,任务开发完毕后,不用关心任务错综复杂的依赖关系与底层的大数据平台的架构实现,将工作的重心更多地聚焦在业务之中

• 引入ChengYing后,运维部署成本降低,通过ChengYing,我们能够将原来手动部署Hadoop的时间从数小时缩短至6分钟;并能够对各个服务进行界面化监控以及管理,降低运维部署成本。

开源框架未来的规划

ChunJun:领先、稳定、高效

• 多版本数据源共存

• 类型转换统一规范化

• 数据还原功能更加完善

• E2E单测体系建立

• 全量&增量实时采集

• 数据湖生态完善

• 存储层批流统一

Taier:部署多样化、功能完善、多系统对接

• 新增其他任务类型支持

• 同时支持yarn/k8s

• 支持 Schedule/Worker整合与分离部署

• 支持交易日历、事件驱动

• 外部系统对接(Azkban、Control-M、DS)等

ChengYing:自动化、简便易用、告警类型丰富

• 支持基于主机角色与服务类型自动编排

• 支持通过集群开启Kerberos认证以及票据的生成与下载

• 自定义部署产品包流水线顺序

• 支持基于PromQL的自定义告警设置,丰富告警类型

ChunJun Meetup演讲分享 | 基于袋鼠云开源框架的数仓一体化建设探索相关推荐

  1. 新氧云原生全栈数仓最佳实践

    简介: 新氧数据中台数据研发部总监 高宏超:自建大数据平台面临困难与挑战,我们从成本.安全.资产管理及组件可扩展性等综合考量后决定整体迁移到阿里云,上云后,总体资源成本降低30%,性能上提升2-3倍, ...

  2. 智能运维案例系列 | 新网银行 X 袋鼠云:银行核心业务系统日志监控平台建设实践...

    在聊今天的案例之前,我想首先和大家聊聊当前最热的词汇之一:"数据驱动". 双11就要到了,当你打开手淘页面,你会收到平台推荐给你的优惠活动信息,你可能感兴趣的商家或者商品, 你随意 ...

  3. 美团 iOS 端开源框架 Graver 在动态化上的探索与实践

    近些年,移动端动态化技术可谓是"百花齐放",其中的渲染性能也是动态化技术一直在探索.研究的课题.美团的开源框架 Graver 也为解决动态化框架的渲染性能问题提供了一种新思路:关于 ...

  4. 分享一个阿里云开源的流程图-g6

    最近有个朋友问我有什么插件可以做网络拓扑图,当时我也一脸懵,在百度上找了好久,找到了这个网站,应该可以解决他们公司的需求,觉得网站图画的不赖,这里分享给大家. 还有一个可以拖动的网络拓扑图JTopo ...

  5. 基于spring 的开源框架

    2019独角兽企业重金招聘Python工程师标准>>> Spring框架是一个相对较难学习的一个框架,尤其是当你想要使用行业标准开发一个真实的项目案例的时候.虽然刚开始的时候阅读大量 ...

  6. mvc的宿舍管理系统源码 基于jsp_[源码和文档分享]基于JSP的MVC框架实现的图书推荐系统展示平台网站...

    推荐系统是目前互联网中最常见的一种智能产品形式.由于网络中信息量的快速增长以及图书出版行业出版量的攀升,人们需要一种办法,来解决信息过载的问题.此外,用户访问网络是为了获取信息,但并不是所有的访问都有 ...

  7. 《开源公开课分享》:Java开源框架案例视频分享

    缺乏高端技术人才?缺乏开发标准?     代码复用性低?技术风险难于把控?     招聘成本高?培训成本高?     如果想法不够宏伟,那么就会局限于细节:如果一开始就铺非常大的摊子,将会失去控制:如 ...

  8. [源码和文档分享]基于J2EE的JSH框架和百度语音识别接口实现的语音记账APP

    1 项目介绍 1.1 项目背景 现在财务管理是每位社会人士所需,人们需要方便快捷地记账,这也产生了记账软件的需求.记账软件能方便大家记账,而且能显示以往的历史记录,能反馈用户近期的消费情况,例如收支的 ...

  9. [源码和文档分享]基于Python的Django框架实现的中式快餐厅管理信息系统网站

    1 初步调研 随着餐饮业的连锁和国外餐饮巨头的进入,餐饮业的竞争将越来越激烈:要想在竞争中处于不败之地,必须在管理.服务等方面提高服务管理意识.面对当前餐饮业普遍的产业化程度低,管理手段.管理技术落后 ...

最新文章

  1. 生产指挥调度系统_市安全生产应急救援指挥中心将大型装载机械设备储备信息纳入应急指挥调度系统...
  2. 关于bedtools merge 功能中sort 命令的解释
  3. 一次性输血器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  4. 《C++游戏编程入门(第4版)》——1.2 编写第一个C++程序
  5. 【学习笔记】用Mac自学虚幻4
  6. resin设置权限_如何配置resin 3.1.9
  7. 拜拜了Unable to connect to remote host. Catalog download has failed.您嘞
  8. RT-Thread Studio配置连接WIFI模块
  9. 【Linux】无法读取/挂载U盘
  10. C语言基础和语法知识
  11. 【JSP】JSP简单介绍
  12. 我是如何通过系统架构设计师考试的(2017年软考)-转载
  13. 怎样恢复计算机管理员用户,忘记了电脑系统Administrator账户的密码?如何恢复?...
  14. 想开发手机APP软件,首先要弄清楚以下10点
  15. 足不出户怎么在家赚钱,暑假在家别闲着,给自己赚点生活费吧
  16. 5.5日滴滴“空姐遇害事件” 后 其安全保障机制需不断升级
  17. 还在头疼每月房贷还款?这个房贷计算机让你一目了然
  18. 转载-VB根据网络时间校准本地时间
  19. stm32/gd32爱玛电动车控制器资料
  20. 三菱电梯部分原理图,软件工具及资料

热门文章

  1. 支付宝php40247,支付宝APP支付 显示 系统繁忙 请稍后再试 ALI40247
  2. git错误:error: failed to push some refs to
  3. Windbg调试命令详解(2)
  4. MIT6.S081 2021
  5. html容器自定义宽高比,容器长宽比_aspect-ratio, 宽高比, 会员专栏 教程_W3cplus
  6. 下载想看的英文kindle 电子书
  7. WordPress插件教程-WPS Limit Login限制登录次数
  8. 计算机打印错误,打印机错误正在打印处理方法,详细教您电脑打印机错误正在打印处理方法...
  9. iptables配置docker服务端口访问限制
  10. java斗地主代码花色,集合经典案例:斗地主发牌功能实现