Spark 、Kafka、阿里Mars......大数据分析的支撑技术选型和实践

大数据(BigData)和分析(Analytics)是两个经常一起出现的词。尽管大数据技术已经出现十余年、

AdaAda2023-09-18

大数据(Big Data)和分析(Analytics)是两个经常一起出现的词。尽管大数据技术已经出现十余年、PB 级别的数据量也不再罕见,但是分析技术却从未停止过演化。从最初原始的 Map-Reduce 到后来的诸多 Libraries,从批处理(Batch)到流处理(Streaming),从传统的机器学习(ML)到近年来兴起的深度学习(DL),从面向数据工程师的 Java/Scala/SQL 编程接口到面向数据科学家的 Python/DataFrame 接口,大数据平台已经逐渐变成了一个真正的端到端的分析平台:支持海量数据管理、全面的分析功能、拥抱数据科学和机器(深度)学习。


另一方面,云计算模式的普及和云原生应用的发展也给大数据分析平台技术带来了巨大影响。计算和存储的分离,跨云的计算/存储资源池,对 Kubernetes 等技术的拥抱,都使的如今的大数据分析平台和过去看起来很不一样。


再者,硬件技术的发展也是日新月异。万兆网络在数据中心里已经开始普及,SSD 的容量-价格比不断提高,革命性的持久化内存技术已经上市,CPU 之外的各类硬件加速器也是百花齐放。相应地大数据分析平台也在不断演化,具有颠覆性的软件技术也在不断出现。


大数据分析(Big Data Analytics)这一热门领域经久不衰,新兴技术也纷涌迭起。这里向你推荐四个值得参考的实践案例:


Spark SQL 在字节跳动数据仓库领域的优化实践


Spark 在字节跳动内部扮演着重要角色。在数据仓库领域,Spark SQL 正在逐渐取代 Hive 成为主要的 ETL 计算引擎,另外它还是字节跳动内部重要的 ad-hoc 查询引擎。目前 Spark 每天处理百万亿级数据,单任务 Shuffle 数据量可超过 200TB。同时 Spark 与其它系统混合部署,因此性能与稳定性都是需要重点解决的问题。本次分享将会基于基础架构团队过往的工作成果,介绍字节跳动在提升基于 Spark SQL 的 ETL 稳定性以及优化 ad-hoc 查询的性能方面的实践。


点击图片查看详情


你将了解:

  • 超大规模 Spark 集群在海量数据场景下的挑战和痛点;

  • 字节跳动如何提升 Spark 作业的稳定性;

  • 字节跳动如何将离线任务从 MapReduce 平滑迁移至 Spark;

  • 字节跳动如何从逻辑计划优化,物理计划优化,以及运行时优化等不同维度优化 Spark SQL 的整体性能。



Mars大规模张量计算系统的构建实践

随着数据规模的不断扩大和应用领域的不断拓展,当下的数据科学家和工程师不再满足于传统的分析方法和工具。Python 生态在数据领域的不断拓展也使得数据分析中对兼容 Python 生态工具的需求变得愈发强烈。Mars 正是为这一需求而开发的,试图兼容 Numpy 和 Pandas 的大规模张量计算系统,并已在若干个场景中落地。在本次分享中,我们将基于 Mars 以往的实践介绍系统架构和提升执行效率方面的实践。


点击图片查看详情


你将了解:

  • Mars 如何建模大规模张量计算问题并拆解为分布式执行;

  • Mars 如何使用 Python 构建分布式调度系统;

  • 细粒度张量计算图调度中可能遇到的问题及其对策;

  • Mars 的应用范围和未来的发展方向。



大数据在趣头条的演进:Kafka 读写分离、Hadoop 治理、机器学习平台


趣头条在 2018-2019 年经历了业务的高速发展,主 App 和其他创新 App 的日活增加了 10 倍以上。相应的,大数据系统和平台也从最初的 100 台机器,增加到2000 台以上,技术栈从单一的离线数据报表,发展到离线 + 实时 + 机器学习的完整系统。这个分享将从 3 个主要方面,阐述大数据系统的演进路线,和经验分享。


Kafka 读写分离背景:各业务部门数据消费方式的差异,经常导致 Kafka 集群节点的不稳定。解决方案:读写分离,第一层集群只负责接收数据,第二层集群按部门隔离,用 Flink 把数据从第一层集群同步到第二层。第一层集群前面还有个 Proxy 负责统一接收数据。这个方案参考了 Netflix 的设计。


Hadoop 治理背景:集群从 100 台增加到 1500 台,很多历史遗留问题,例如用户和权限管理的缺失,缺少 Federation 对于各部门的隔离,小文件,低价值数据的归档和删除,计算队列的利用率,阿里云 EMR 无法完全满足定制化的需求,客户机的管理混乱,等等。解决方案:自研 Hadoop 集群管理平台,基于 CDH 的源码二次开发,多 Federation + HA,按部门的存储和小文件上限管理,数据生命周期管理,元数据与数据全链路监控,用户权限管理。


机器学习平台背景:公司算法部门有多套训练平台,缺乏统一的资源管理,调度平台,特征仓库,等等。解决方案:所有训练集群统一到 K8S 管理(包括 CPU

和 GPU 资源),用 KubeFlow 管理任务调度,自研 K8S 任务调度模块提高集群资源利用率,开发特征管理仓库,开发模型管理仓库,用 K8S 管理线上预测服务,等等。 


点击图片查看详情


你将了解:

  • 阿里云大数据平台,和其他公有云方案的差异,和应用场景; 

  • 大数据系统快速增长过程中,如何保障稳定性,如何做技术选型; 

  • 如何从 0 到 1,构建大规模数据系统平台; 

  • 机器学习平台的构建,发挥 K8S 的作用,如何跟数据系统集成。 



通过计算存储分离实现高性能弹性化的 Spark 部署


实现 Spark 的弹性化对其在云上实现灵活部署有着重要的意义:易失性的云主机部署,节点失效成为常态;存储计算分离,有限的本地存储加上大量的远端存储(块存储、对象存储)。所有的这些变化促使传统的大数据框架需要更适应云原生的部署方式。


为实现这一目的,分离 Spark 的计算和存储则变得尤为重要。如果计算的临时结果,输入和输出数据都被转移存储在计算集群之外的存储集群,计算任务即可转化为无状态的弹性任务。对于 Spark,重要的计算的状态数据包括 Shuffle 过程中产生的临时数据以及 RDD 等缓存数据,这些数据必须存储在外接存储集群以实现弹性部署。然而,由于外界存储集群的 I/O 性能以及计算节点和存储节点之间的网络传输性能瓶颈对实现高性能的计算存储分离方案提出了巨大的挑战。



点击图片查看详情


本次分享中,我们基于之前合作的结果,讨论一种高性能实现 Spark 存储计算分离的创新架构。该架构基于一套全新开发并基于持久化内存的高性能分布式数据基础架构,以及高性能低延迟网络传输协议。我们以腾讯云数仓产品 Sparkling 为例,讨论使用该创新架构在优化 TPC-DS benchmark 性能上的实践。


欢迎你来QCon上海2019探讨基础架构层面的支撑技术。此外还有100+技术大佬将给你带来最新的技术动向,最有料的实践分享,以及最热的互动社区。点击「阅读原文」立即上车。大会8折报名中,立减1760元,有任何问题欢迎联系票务小姐姐Ring:17310043226(微信同号)

返回文章列表