实时大数据平台技术架构演进及实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 实时大数据平台技术架构
演进及实践
京东零售 集团数据计算平台部 / 韩 ⻜
2.
3. 目录
01 平台定位及规模
02 架构演进及实践
03 未来规划
4. 01 平台定位及规模
5. 业务及定位
➢ 集团统一的实时数据平台
➢ 覆盖采集、存储、计算
➢ 服务订单交易、商智⻩金眼、实时⻛
控、京东白条、实时大屏等核心业务
6. 平台规模现状
12万亿+
27PB+
日处理消息条数峰值 日吞吐量峰值
2.1万+ 2.2万+ 1万+
采集、分发作业数 Topic数 Flink作业数
7. 平台规模现状
115万核+ 1.3万台+ 5
CPU核数 物理机总数 机房数量
8. 02 架构演进及实践
云原生、智能化
9. 实时平台架构及容器化现状
实时链路
Hive
JED
Doris
RDS
Fregata
JDQ
Fregata
query
➢ 采集:Fregata(采集&分发)、FlinkCDC
➢ 存储:JDQ、Pulsar、Hudi、Paimon
➢ 计算:JRC Flink
基于JDOS(京东Kubernetes平台)底座
ClickHouse
CDS
FlinkCDC
Iceberg
Hudi
App
Logs
SDK
JDQ
实现全链路容器化
Iceberg
Flink
Hudi
JDQ
Flink
➢ Fregata 100%
➢ JDQ 15%
➢ JRC 100%
Data Sources
Incremental ETL
JDOS
跨机房能力
弹性能力:分发、计算
10. JDQ on JDOS
服务状态保持一致
StatefulSet
➢ CFS:路径一一映射
数据持久化、性能
nodeAffinity
Broker
Pod
Broker
Pod
Broker
Pod
podAntiAffinity
➢ 小IO、主从同步
➢ Linux内核对FUSE WriteBack Cache支持不完善导致限速
兼容物理机集群部署,无感知迁移
Service
PVC
JDOS DNS
物理机独占
Par200Rep2Ack1
Nocallback Par200Rep2Ack2
Callback
3375w 2262w
ChubaoFS 物理机集群
32C/192G 3227w 2447w
云海 CFS集群
32C/64G 云海集群
32C/64G 3376w 2946w
LocalPV
NodePort
LoadBalancer
Headless
存算分离
性能接近物理机集群
服务器成本节省25.3%
11. 实时计算弹性
traffic-based
time-based
12. 实时计算弹性
MDC
Topic
pull
Metrics
Topic
Container
Monitoring
Elastic
Config
Topic
Flink
Metrics
Reporter
MDC Consumer
pull
pull
Metrics
Consumer
Elastic Config
Consumer
➢ Flink Metrics Reporter:主动上报
➢ 宿主机部署MDC agent:Pod
Elastic Scaling Service
Elastic
Scaling
Kernel
Algorithm
Model2
Planner
Algorithm
Model
CPU、 MEM、Disk
➢ Planner: 算法可插拔
➢ Kernel根据JOB ID过滤Metrics
result
Elastic
Config
推广实践
TM
Process JM
Process
Container Container
JRC Web
pull
Elastic Scaling
Result Topic
L3作业 :1276
资源降低:323,4988核,节省比例51.5%
Flink Cluster
Prometheus
Proxy
资源增加:51,302核,增加比例22.5%
13. 跨机房能力
实时平台MTTR高敏感
端到端数据双流(活)能力
➢ MTTR -> 0
➢ 高资源成本
➢ L0双流覆盖率 -> 100%
一键自动化切换
➢ 状态本身跨机房
➢ 计算一键切换
MTTR
(Mean Time to Repair,平均恢复时间)
14. JRC Flink跨机房
HT机房
LF机房
Flink Job
states
HDFS
❌
Flink Job
states
HDFS
➢ States默认写同机房公共HDFS集群
➢ Flink Job 一键切换
➢ Flink Job支持多HDFS配置
➢ 跨机房SP、CP恢复(优先写同机房)
15. JRC Flink跨机房
LF机房
HT机房
States支持写CFS
➢
Flink Job
Flink Job
Hadoop-Plugin
CFS跨机房三副本
Flink Job 一键切换,CFS分片路由切换
states
states
CFS
CFS
CFS
CFS config
ZYX机房
cfs.hadoop-plugin.enable : true
cfs.cluster.address :
cn.chubaofs.jd.local
cfs.volume.name : jrc-state
cfs.owner : xxx
<configuration>
<property>
<name>fs.defaultFS</name
<value>chubaofs://cn.chubaofs.jd.local/</value
</property
…
</configuration>
core-site.xml、hdfs-xite.xml
16. 平台智能化
对用户
➢ 平台易用性
➢ 开发效率
➢ 解决问题的效率
平台自身
➢ 自动化程度
➢ 资源、运维成本
➢ 自愈能力
成本、效率、体验
17. 低代码开发
低代码开发模式
正常开发流程
➢
API学习 -> 开发 -> 测试 -> 上线
时间成本:天级别
平台维护成本大(黑盒)
➢ SQL 25%+
➢ 配置化 6%+
➢ 画布 初始阶段
时间成本:小时级别
平台维护成本低
18. 低代码开发 配置化
• SELECT *
• FROM
• (
SELECT *
•
,ROW_NUMBER() OVER (PARTITION BY activityId,activityName ORDER BY
•
CountOrder) AS rownum
• FROM
• (
• SELECT activityId
• ,activityName
• ,COUNT(orderId)
• ,SUM(orderAmount)
• ,SUM(mxDiscountAmount) AS mxAmt
AS OrderAmt
• FROM mktCouponConsumeAll.ric_mktcouponconsumeall
• WHERE activityId not in ’’
• GROUP BY activityId
,activityName
•
)
•
单表聚合 Top-N
AS CountOrder
• )
• WHERE rownum <= 20
19. 低代码开发 画布
Streaming ETL场景
20. 智能调度:机房 -> Zone
默认系统分配
➢ 取空闲资源Top10
➢ 随机选取
用户自主选择
结合数据路由(在建)
➢ 作业上下游数据源
➢ 同机房偏好
21. 智能调度:宿主机
目的:资源整体均衡调度
策略:
➢ CPU+MEM都低 > CPU低 > MEM低
➢ 单Pod尽量均衡(降低单机宕机影响的范围)
连续启动3个Flink应用:
1. 4个pod (1个jm,3个tm)
2. 4个pod (1个jm,3个tm)
3. 6个pod(1个jm,5个tm)
22. 作业健康度
打分模型:减分
评分指标:
➢ 作业未配置告警
➢ 资源利用率低(邮件告警及建议)
➢ 作业运行存在异常
➢ 运行环境存在异常
➢ 作业配置不合理
➢ 其他
23. 03 未来规划
24. 未来规划
➢ 商业化及多云适配
➢ 全链路100%容器化及弹性
➢ 持续技术降本
➢ 端到端秒级时延的实时链路
25.