随着开源技术与云原生的高度融合,阿里云开源大数据平台在功能性、易用性、安全性上积累了丰富的实践经验,已成功服务数千家企业,助力其聚焦自身核心业务优势,缩短开发周期、简化运维难度,拓展更多业务创新。10月29日,阿里云发布“如何构建云原生的开源大数据平台”解决方案,邀请到了来自阿里云、微淼、Inmobi的技术专家为大家现身说法,呈现上云实践。
本文主要分享 InMobi 基于阿里云开源大数据服务的最佳实践
分享嘉宾: Murray Zhu,InMobi 技术运维负责人
视频地址:https://yqh.aliyun.com/live/bigdataop
一、公司介绍
InMobi 是 AI 和效果驱动的全球化移动广告和营销科技平台,基于全球对接的海量 App和用户,为国内品牌和 App 提供移动广告推广和营销科技服务,为App开发者提供 App广告商业化变现服务。该平台成立于2007年,在2011年进入中国市场,以研发技术为导向,在移动端广告平台行业占据重量级地位,其专业技术在全球和中国都非常领先。InMobi 通过分布全球的23个国家和地区的本地化服务团队,触达10亿以上月活跃独立用户,提供数万个以上精细化受众分类,上千种维度标签,千万级用户自定义样本库的数据和 LBS 服务为基础的精准移动端广告。
作为一家全球领先的科技公司,InMobi 被 CNBC 评为2019年度“全球50大颠覆公司”之一,亦被 Fast Company 杂志评为2018年度“最创新”公司之一。
二、InMobi 中国大数据解决方案
上图是 InMobi 原有的中国大数据集群架构,主要分为数据的摄入层、存储层、计算层,以及报表层。首先通过数据摄入层摄入广告前端的各种广告数据,特别是 RR 等数据,然后将数据存储到离线的 HDFS 大数据集群,再通过计算集群进行数据任务的处理,最后将处理完的任务,通过报表的方式展现给终端用户。
在大数据集群的运维过程中,一些问题逐渐暴露:
- 大数据集群构建在 IDC,不利于资源伸缩和扩展
当计算资源不够用的时候,需要调配甚至暂停一些任务,优先跑重要的任务,对报表的生成并不友好
- 数据报表实时性较差
数据报表实时性差,无法匹配业务方报表分钟级展现的需求
- 用于处理实时报表数据的 Vertica 数据库,价格较为昂贵
三、InMobi 中国大数据集群优化方案
大数据集群的优化思考
InMobi 基于上述三个典型问题,针对优化方案进行了如下思考:
- 构建混合云架构,引入阿里云大数据服务,解决伸缩的存储和计算资源扩展性问题
在云上开启更多大数据服务节点,通过大数据服务的弹性能力扩展短缺的计算和存储能力。特别是针对一些临时性的,如618、双十一等资源使用较为紧张的场景。
- 通过 EMRClickHouse 替换 Vertica 数据库,提升实时报表数据查询效率,并节省成本
ClickHouse 作为一个开源产品,目前已经大规模的在中国各种互联网公司的业务场景落地
- 构建基于 Flink+EMRClickHouse 的实时数仓体系,彻底解决数据报表实时性问题
解决数据报表实时性问题,至少达到分钟级,针对有特殊要求的报表达到秒级。
大数据集群的具体优化方案
- 实时数仓和离线数仓解耦
- 在 IDC 大数据集群中,将离线数据报表资源和实时报表资源完全解耦
- 在 IDC 大数据集群中,将离线数据报表任务和实时报表任务完全解耦
- 重构实时数仓
- 将 Kafka 日志集群迁移到阿里云
- 在阿里云上,基于 Flink+EMRClickHouse 重构实时数仓集群
- 在 IDC 中,将原有 Storm 任务迁移到新的实时数仓集群
- 优化离线数仓
- 优化和回收利用 IDC 中的 HDP 大数据集群资源,节省成本;
- 建立离线数据仓库 Hive;
- 在阿里云上开启新的数据节点,加入到离线大数据集群,扩展存储和计算资源;
- 在阿里云上构建新的 Flume 集群,将 KafKa 中原始数据落盘到HDFS存储
优化后的大数据集群架构
如上图所示,优化后的大数据集群架构主要分为两部分:
- AliCloud(Real Time),阿里云主要负责实时数据的处理。
从 KafKa 中读取rr log,通过 ClickHouse 写入到实时报表,根据业务要求,从 KafKa 中读取有用数据落到 MySQI 和 PostgreSQL 上。
- IDC (Offline),IDC 主要负责处理离线的数据和报表业务。
通过 Flume 将 KafKa 里面的原始数据全量落盘到整个 HDFS 集群进行存储,然后进行数据分析和数据规整。在离线大数据集群上,将离线报表的业务需求通过 Spark 任务全部跑出,最后再将任务写回到 ClickHouse 中做离线数据报表的展现。
四、未来更多的技术探索和落地
基于 Flink+Hologres 构建流批一体的实时数仓
众所周知,Hologres 的架构是存算分离的。计算完全部署在 K8s 上,存储可以使用共享存储,根据业务需求选择 HDFS 或者云上的 OSS,实现资源的弹性扩缩容,完美解决资源不够带来的并发问题,非常适合 InMobi 的广告业务场景。
此外,Flink 做流、批数据的 ETL 处理,将处理的数据写入 Hologres 做统一的存储和查询,实现业务端直接对接 Hologres 提供在线服务,大大提高生产效率。
以上就是 Inmobi 基于阿里云开源大数据服务的最佳实践的全部内容。
相关信息
⭐点击链接观看直播回放,超多活动信息等你来
https://yqh.aliyun.com/live/bigdataop
⭐更多EMR相关信息,欢迎前往EMR产品详情页: https://www.aliyun.com/product/emapreduce
欢迎钉钉扫码加入EMR相关产品交流群,为您提供最新的产品直播、产品活动及技术支持!