货拉拉大数据新一代基础架构实践与思考
导读货拉拉大数据团队在成立三年内解决了诸多业内难题,取得了一些阶段性成果。在本次分享中,作者将深入探讨大数据基础架构如何实现高钱效、高运维效率和高分析效率,其中遇到哪些挑战以及解决思路。
1. 背景与挑战
2. 基础架构实践
3. 总结与思考
4. 未来展望
1. 货拉拉介绍
平台服务层提供数据治理能力和基础平台能力服务; 计算引擎层包含离线引擎、OLAP 引擎、(规划中的)AI 引擎; 集群管理&存储层包含在线存储(如 ES 和 HBase)、离线存储(HDFS、云存储)、资源管理(YARN、规划中的 K8s); 基础资源管理层包含基础设施管理体系(主要是货拉拉内部连线的各云厂商提供的物理资源,及对其进行本地化管控的体系),和正在进行中的智能运维体系。
钱效低,具体表现在: 集群资源利用率低; 波峰波谷效应明显,采用高峰资源保障,带来成本浪费; 大数据成本增长快,缺乏对数据的冷热分层、生命周期的管理; 运维效率低,面对全球化/多地域/多集群/多服务的复杂场景,主要依赖 SOP 和脚本来保障运维,效率低下;同时,运维变更的稳定性比较差;运维人员的工作量繁重,被迫拉长工作时间; 分析效率低,用户经常吐槽查询引擎速度太慢,他们对分析效率的追求永无止境。
基础架构实践
首先,组件适配,包括大数据组件适配,例如目前主要使用的计算引擎 Tez、spark、YARN(某些 java 包等);和基础组件适配,例如公司级的安全组件、运维组件等。 第二,在调度改造方面,支持用户在应用层选择架构,同时也完成了对 PySpark 的兼容支持; 最后在机器物理资源压测、TPC-DS 压测、核心链路任务的抽样测试后发现,使用 ARM 节点后集群性能没有明显下降。
首先,需要构建集群的资产管理能力,可以统一资产管理入口,并对资产进行全生命周期管理; 然后,在工作流编排能力上,将 SOP 和运维脚本固化成工作流,使其具备分布式调度执行的能力; 最后,优先完成高优高频场景的自动化改造,快速提升运维效率。
出发点是将计算节点本地的 shuffle 数据保存到远端,本地的计算节点就可以实现无状态化,计算节点便可进行容器化部署,为大数据云原生打下基础。 因为货拉拉使用 Tez 计算引擎,在选型方面主要考虑:通用性,能支持 Tez、Spark、MR;相比本地 shuffle,无明显性能下降;提供高可用的能力,且对 Tez 源码尽量少改动、侵入;首选 Apache 社区活跃项目。
多引擎路由,支持自动降级。主要思想是根据各引擎优缺点,将 SQL 路由到最适合它的计算引擎上。通过观测 SQL 的执行计划,查询数据扫描量和算子分布,匹配路由策略,最终分配到合适的计算引擎上。如果 SQL 执行失败,将自动降级到其他引擎。若所有引擎都执行失败,由 Hive 做兜底,保证执行成功。 对用户屏蔽多引擎差异,降低使用复杂度。不会更改用户使用习惯,用户以 Hive 语法编写 SQL,后台进行 SQL 转化,对用户屏蔽多引擎语法的差异。 分布式架构,高可用且支持横向扩展。为了应对未来的大规模需求。
总结与思考
未来展望
分享嘉宾
INTRODUCTION
朱耀概
货拉拉
高级大数据工程师
本科毕业于华南理工大学,先前就职于 vivo,从事过万亿级 vivo 用户画像建设,目前就职于货拉拉,主要从事大数据平台、大数据自动化运维体系建设以及 HBase 稳定性建设,Apache HBase/Kyuubi/Uniffle Contributor。