王华磊:Apache Linkis在湖仓一体架构下的数据处理实践

2023/08/31 15:12
阅读数 108

从一个项目成长到今天,Apache 软件基金会(ASF)已经成为目前为止全球最大的开源软件基金会,维护着包括 350 多个顶级项目以及数十个孵化器项目,为全球提供着几十亿甚至上百亿美元市值的开源软件,是推动全球开源软件发展的重要力量。
伴随着全球开源项目数量的迅速增长,我们很高兴看到越来越多中国的开发者与开源项目加入,以及越来越多高质量项目的涌现。种种迹象表明,中国在国际基金会的影响力愈发重要。
今年,CommunityOverCode Asia(原 ApacheCon Asia)作为 Apache 软件基金会的官方全球系列大会首次在中国举办线下活动, Apache Linkis项目的核心成员共赴此次开源技术盛宴。

以下内容为Apache Linkis Contributor 王华磊在活动中的分享内容。


Apache Linkis在湖仓一体架构下的数据处理实践

来自邮储银行副主任工程师——王华磊,代表社区分享了Apache Linkis在湖仓一体架构下的数据处理实践的主题演讲

银行大数据湖仓一体架构由于对于稳定性、安全性等方面的要求更高,使得其与互联网公司有很大的不同,同时也面临更大的挑战。接下来将结合大数据平台总体架构实施过程的对各种挑战“见招拆招”。

为达到技术自主可控、兼容开放的目标,,可以选型开源Hadoop+MPP的结合的湖仓一体技术架构,融合批量实时数据处理双链路,基于Iceberg数据湖格式,使用Spark(批量)、Flink(实时)计算引擎,再结合使用Apache Linkis构建湖仓一体的技术平台底座,从而达到提质增效的实施效果。

大数据湖仓一体架构参考


挑战1:技术组件多,基础环境维护复杂

开源Hadop集群往往很多个,通常集群上层应用会直接访问集群,由于不同的应用由不同的项目组负责,基础环境的变更会直接影响上层所有应用的关联变更,协调工作多,生产变更风险大。

典型场景1:集群扩缩容,由于hdfs客户端需要访问所有数据节点需要同步更新主机的/etc/hosts文件,容易出现关联应用分析不到位,无法同时变更导致生产问题。

典型场景2:HiveServer2重启,为保障造成应用批量的正常运行,需要同步协调各应用项目组择机操作。


挑战2:技术有难度,技术开发门槛高

不同于互联网大厂,一般企业的科技人员都是以应用开发人员为主,偏底层的技术人员储备较少,开源社区的不同组件解决不同的问题,也存在不同的使用方式,从而要求应用开发人员需要的技能较多,但普遍技术门槛高,导致技术人员成本高。


挑战3:开源组件版本升级快,API变化大

开源社区的繁荣,一方面让程序员享受技术进步的喜悦,同时也带来无尽的“苦难”。部分组件,例如Flink、Spark,不仅版本升级迭代速度快,大版本的API变化也多,往下兼容存在问题。对于多租户的集群,“众口难调”。


挑战4:不同算引擎的元数据存储不同,统一视图难

不同的开源组件支持的元数据存储不同,作为技术平台,希望看到统一的元数据视图,了解自己有多少数据。对于支持Hive Metastore的,可以尽量往Metastore靠拢。对于不支持的,应用开发人员需要独立连接多个计算组件查询。


面对以上问题, Apache Linkis 在邮储银行的应用实践过程中,

  • 通过实现计算组件的底层对接,对外提供统一接口调用:

基于Apache Linkis构建统一的中间访问层,对上层应用提供统一的Rest接口,简化了客户端部署,提升了管控能力。

  • 降低应用开发门槛,优先使用SQL开发:

对于支持SQL的引擎,优先使用SQL进行业务开发,再结合Linkis中的Scripts组件提供Sql编辑和调试,极大了降低了对应用开发人员的技术门槛。

  • 同一组件多版本共存,尝试灰度升级:

利用Apache Linkis的引擎管理,可以为不同应用配置的计算引擎版本,再结合灰度发布,基本解决不同应用使用不同组件版本的需求。

  • Hive Catalog为主,提供元数据统一入口:

借助Apache Linkis的多数据管理,以Hive Catalog数据模型为主,将Hbase、Kafka、MPP、Doris数据库相关的元数据底层存储封装,对外提供接口调用,构建技术元数据统一入口。结合Apache Atlas初步建立技术元数据血缘。


通过与Apache Linkis社区的协作,目前Apache Linkis已具备日批量运行作业6万及以上的能力,同时,我们也积极的参与 Apache Linkis 社区的共建,在某些特性方面做增强的支持,如:

未来,我们也将继续基于Linkis 不断的进行系统优化和性能提升,对于Iceberg和容器化部署会更为关注

  • Iceberg等数据湖技术的管理“外挂

在湖仓架构下,Apache Linkis能将对底层技术组件的技术门槛,对于Iceberg等数据湖格式,可以探索更多的功能实现。我们也计划结合Linkis的引擎、元数据等模块,增加对Iceberg数据管理的“外挂”,完成Iceberg相关的表结构优化,小文件合并等功能实现。

  • 加大容器化部署方面的实践

由于Apache Linkis采用微服务架构,安装部署还是存在一定的技术门槛,为满足快速部署的场景,积极与社区互动,进行容器化部署实践。
在此,也期待大家能够一同完善、共建 Linkis生态,让社区发展的越来越好。更多关于Apache Linkis的内容,大家可以到 WeDatasphere 社区进行了解。

— END —

如何成为社区贡献者

 官方文档贡献。发现文档的不足、优化文档,持续更新文档等方式参与社区贡献。通过文档贡献,让开发者熟悉如何提交PR和真正参与到社区的建设。参考攻略:保姆级教程:如何成为Apache Linkis文档贡献者


 代码贡献。我们梳理了社区中简单并且容易入门的的任务,非常适合新人做代码贡献。请查阅新手任务列表:https://github.com/apache/incubator-linkis/issues/1161


 内容贡献:发布WeDataSphere开源组件相关的内容,包括但不限于安装部署教程、使用经验、案例实践等,形式不限,请投稿给小助手。例如:


 社区答疑:积极在社区中进行答疑、分享技术、帮助开发者解决问题等;


 其他:积极参与社区活动、成为社区志愿者、帮助社区宣传、为社区发展提供有效建议等;

本文分享自微信公众号 - WeDataSphere(gh_273e85fce73b)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部