贝壳找房基于 Flink 的实时平台建设

2024-06-12 21:58

本文主要是介绍贝壳找房基于 Flink 的实时平台建设,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要:本文由贝壳找房实时计算负责人刘力云分享,主要内容为 Apache Flink 在贝壳找房业务中的应用,分为以下三方面:

  1. 业务规模与演进

  2. Hermes 实时计算平台介绍

  3. 未来发展与规划

业务规模及演进

下图为贝壳找房的业务场景示意图。最上层为贝壳找房公司最为主体的四大业务:二手房交易、新房交易、租赁业务及装修业务。四大业务运营将产生图示中间部分的四大数据即楼盘字典、交易数据、用户行为日志与后端服务日志。图示最下面的部分代表公司实时数据采集、实时数据计算的业务模块,本文中的案例将重点介绍数据实时计算部分的设计、实现及应用。

 

发展历程

在 2018 年初,随着公司埋点治理规范的推进,我们建设了 DP 实时数据总线,统一承接各种埋点数据流的标准化处理,并对外提供清洗后的实时数据。随着维护的实时任务增加,面临着实时数据流稳定性以及任务管理方面的挑战,于是贝壳大数据部着手研发了 Hermes 实时计算平台,提供统一的实时任务管理平台。

在 2018 年 10 月,我们推出了 SQL V1 编辑器来方便用户开发实时计算任务。SQL V1 基于 Spark Structured Streaming 技术,用户可以使用 SQL 完成需求的开发,同时以界面拖拽的形式呈现给用户,使用户的操作更加便捷。在 2019 年 5 月,经过调研对比,我们引入了 Flink 技术栈,研发的 SQL V2 编辑器正式上线,SQL V2 全面支持 Flink SQL 的各种语法并设计了大量的自定义函数,兼容 Hive UDF 以及用户常用函数。目前我们已经在公司内进行实时数仓业务场景的探索应用。

 

 

应用规模

下图所示为目前实时计算在贝壳找房企业中的应用规模。目前平台支持 30 余个业务项目,流计算任务数达到 400 个,随着数仓的不断扩充,实时流计算的任务数将不断上升。每日处理的消息条数达到了 800 亿级别,效率十分可观。

 

 

支持的项目

从下图所示实时计算在企业中的支持项目可以看出,目前实时计算平台支持从风控、租赁到策略搜索再到新房交易等一系列业务项目,从各个维度支持起企业运营产生的数据实时计算的业务需求。

 

 

任务增长趋势

最开始平台上线时支持的任务增长较为缓慢,在 2019 年 6 月初,平台升级到 Flink 并全面支持 SQL 开发后,任务数量开始大规模的增长,在 2019 年 11 月份实时数仓建成后,平台所支持的任务数量有了十分明显的增长趋势。

 

 

平台数据统计

下图所示为平台每日数据统计。目前平台每日可以处理 1000 亿条数据,一般数据任务的处理延迟在 40 毫秒左右。

 

Hermes 实时计算平台介绍

 

平台概览

Hermes 平台目前支持着公司实时任务的开发、编辑、部署、启停等管理功能及丰富的监控报警等服务。平台支持 Java、Scala、Python 等多种语言开发的实时任务,支持自定义任务、模板任务及场景任务三大任务类型,同时做到了各个项目的资源隔离,每个项目均有项目的专有队列,防止与其他项目在资源上发生竞争。平台同时为资源需求较小的项目提供了公共队列,通过公共队列对该种项目进行支持的方式,更为方便的实现任务的开发。

 

Hermes 架构

下图所示为 Hermes 平台的整体架构,架构分为 4 个层次,图中最下层深蓝条目代表架构中的计算引擎,目前计算引擎支持 Flink 与 Spark Streaming 技术,并通过消息队列、离线存储等技术辅助完成数据实时的存储。

  • 在引擎层方面,架构采用 StreamSQL、DataStream、StreamCEP 等技术搭建,其中 StreamCEP 技术很好的支持了经纪人平台业务实时监控报警的需求。

  • 功能组件层方面包括了任务实例的管理、项目管理及数据源管理等。

平台目前可以在同一任务中的不同任务快照间进行相互切换,当发现上线任务有问题时,可以回退到之前的快照。

 

 

SQL V1 编辑器

下图所示为 SQL V1 编辑器示意图。该编辑器对于大部分数据清洗及数据处理的业务场景可以实现简洁高效的编辑处理。用户在编辑器左侧可以定义编辑数据源、操作符及目标源等数据信息。中央面板上呈现的数据为 SQL V1 支持编辑的操作类型,选中面板中央的过滤器,即可在编辑器右侧添加相关的过滤条件,实现数据的相关过滤。在目标源层面,编辑器目前支持 Kafka、Druid 等多种目标源,大大提升了编辑器的兼容性。

 

 

SQL V2 编辑器

下图所示为 SQL V2 编辑器示意图。目前 SQL V2 是基于 Flink SQL 技术较为完善的编辑器,左侧为用户进行代码编辑的部分,用户在此处可以编辑大量 SQL 语句以此助力不同业务场景。左下栏目中的数据为用户选中数据源自动生成的 DDL,通过 DDL 编辑器将操作数据的样式更清晰的展示给用户。SQL V2 支持了三大类型的数据表,分别是 source 表、sink 表及维表,以此方便用户的开发。编辑器右下角可以呈现 SQL 语法的检测情况,以此提示用户在编辑时出现的语法错误。

 

 

SQL V2 架构

SQL V2 工具整体架构如下图所示。前端 SQL 编辑器模块包括语法语义的检查、执行计划的查看、自动 DDL 的生成及任务调试的功能。用户通过任务调试功能可以查看任务执行结果。后台将引擎提交到 Yarn 集群上执行,引擎通过任务 id 回调后台接口获取需要执行的 SQL,对 SQL 做语法校验和语法解析,若出现维表关联则会额外对 SQL 做一层转换。

 

 

SQL 引擎整体架构

下图所示为 SQL 引擎的整体架构。整体架构分为三个层次,最底层为 Flink Table API。在 Flink 层之上企业设计了代码的封装,以 factory 的形式方便最上层的方法调用。最上层的 core 层负责整个系统的 SQL 解析。

 

 

维表关联

在 SQL 解析过程中,最为复杂的是维表的表格关联,下图为维表关联系统架构图。数据从数据源导入后,系统使用 Async I/O 技术访问后端,系统后端使用 Data Accessor 接口访问后端的存储。系统后端存储支持 HBase 与 Redis 存储技术,同时后端会将数据缓存于 LRU Cache 模块中。维表关联后的数据支持多种大数据工具的存储,从而大大增加了系统的兼容性。

 

 

丰富的内置函数

系统同时为用户提供了丰富的内置函数,包括时间函数、集合函数、Json 处理函数及字符串函数。丰富的内置函数可以方便用户的开发,省去用户自己去开发的时间。

 

 

实时数仓整体架构

下图所示为实时数仓的整体架构,同时也是 SQL V2 系统落地的应用场景。各个层级间产生的数据被储存在了 Kafka Topic 中,同时数据也将被同步到 Hive 中备份。业务方可以查询实时备份数据进行数据验证及分析等操作。目前数仓的实时计算部分可以计算当天或过往几天的数据,实时计算平台正在与其他组件合作,开发实时与离线联合的分析查询,以此扩展实时数仓的使用范围。

 

 

实时数仓数据统计

下图所示为企业实时数仓的数据统计。从 2019 年 8 月,SQL V2 正式上线运营,至 2019 年 10 月平台开始支持实时数仓开发,系统的数据量开始加速增长。目前,实时数仓已经有 100 余个任务,数据吞吐量也达到了 21 亿条/天的数据级别,数据规模较为可观。

 

 

实时数仓案例

下图列举出实时数仓平台已经实现提供数据支持的应用案例。

1. 交易平台

交易平台实时大屏实时展示大区内的交易状况。在交易平台的建设中,开发团队通过数据回环将还未关联的数据返回储存模块进行重新关联,并通过检验该数据的生命周期判断是否关联成功,团队通过此种方式使得数据维表与事实表数据最终一致。

2. 经纪人行程量

经纪人行程量可以动态的展示当前经纪人对客户的维护情况,使企业可以掌握经纪人实时的工作状态。

3. 实时用户画像

实时用户画像可以实时地向企业呈现来自各个系统用户的数据信息,通过组合各个平台上用户的行为信息,提供全面、精准的用户画像。企业的算法策略部门将根据用户的实时画像进行相关信息、内容的推荐。

 

 

监控报警

下图为平台的监控报警页面截图。监控系统会实时监控平台任务的处理延时、 source 写入量及 sink 写出量三大指标。系统中同时可以设置平台数据的无心跳时间,当超出设置时限后,系统将会进行报警。

 

 

监控报警架构

下图为监控报警架构图。监控系统通过自定义的 Listener 对 Spark 进行监控,Listener 引入 SDK 收集 Spark 任务的信息及运行中的日志数据。用户在此处需要进行手动 SDK 的导入。在 Flink 应用模块中,系统设计支持了自定义 Report 数据的获取,并通过自动加载的方式直接载入 Flink 中进行数据的分析与计算,同时通过任务启动时注入 java 探针的方式获取任务的相关信息。所有的监控信息将被统一送到 Kafka Topic 中,经 Hermes 平台分析处理,触发相应的延时报警及心跳报警。

 

未来发展与规划

 

整体架构

实时计算平台的整体架构如下图所示。在架构中间部分,平台包含了实时事件中心、事件处理平台等系统来更好的处理未来企业中的业务场景需求,以通用服务平台的方式为更多的业务方提供统一的业务支撑。在引擎方面,未来会深入研究 Flink 的状态管理、端到端的精确一次等技术,提高数据处理的准确性和一致性。

 

 

未来发展

未来将会加强平台的资源动态分配能力,根据任务的历史运行情况自动分配资源。

  • 用户可以在事件处理平台上定义各种事件,实时对事件进行分析,并产生相关的数据报表。用户通过实时规则引擎完成各种业务规则的配置,事件命中规则后触发相关的业务操作。

  • 用户数据平台汇集各个产品、各个端的用户数据,提供用户行为的实时查询、分析,更加高效的支持营销、推荐等业务场景。

  • 实时数仓建设方面会进行 KAPPA 模式的探索,推进流批一体化建设,提升历史数据的处理和查询能力。

 


往期推荐

1、HBase最佳实践 | 聊聊HBase核心配置参数
2、Apache Hudi:剑指数据湖的增量处理框架
3、Hadoop社区比 Ozone 更重要的事情
4、MapReduce Shuffle 和 Spark Shuffle 结业篇

 

这篇关于贝壳找房基于 Flink 的实时平台建设的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1055454

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

如何解决线上平台抽佣高 线下门店客流少的痛点!

目前,许多传统零售店铺正遭遇客源下降的难题。尽管广告推广能带来一定的客流,但其费用昂贵。鉴于此,众多零售商纷纷选择加入像美团、饿了么和抖音这样的大型在线平台,但这些平台的高佣金率导致了利润的大幅缩水。在这样的市场环境下,商家之间的合作网络逐渐成为一种有效的解决方案,通过资源和客户基础的共享,实现共同的利益增长。 以最近在上海兴起的一个跨行业合作平台为例,该平台融合了环保消费积分系统,在短

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

衡石分析平台使用手册-单机安装及启动

单机安装及启动​ 本文讲述如何在单机环境下进行 HENGSHI SENSE 安装的操作过程。 在安装前请确认网络环境,如果是隔离环境,无法连接互联网时,请先按照 离线环境安装依赖的指导进行依赖包的安装,然后按照本文的指导继续操作。如果网络环境可以连接互联网,请直接按照本文的指导进行安装。 准备工作​ 请参考安装环境文档准备安装环境。 配置用户与安装目录。 在操作前请检查您是否有 sud

业务协同平台--简介

一、使用场景         1.多个系统统一在业务协同平台定义协同策略,由业务协同平台代替人工完成一系列的单据录入         2.同时业务协同平台将执行任务推送给pda、pad等执行终端,通知各人员、设备进行作业执行         3.作业过程中,可设置完成时间预警、作业节点通知,时刻了解作业进程         4.做完再给你做过程分析,给出优化建议         就问你这一套下