Amazon EKS 上的大规模数据处理

云计算
re:Invent
0
0
## 视频 <video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/CON309-Data_processing_at_massive_scale_on_Amazon_EKS-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video> ## 导读 组织使用其数据,做出更好的决策,并为客户构建创新体验。他们还正在寻找处理大量数据的现代方法,以获得更深入的见解。在本论坛中,了解组织为什么选择在 [Amazon EKS](https://aws.amazon.com/cn/eks/?trk=cndc-detail) 上构建其数据密集型应用程序,以通过使用亚马逊云科技托管服务减少运营开销,并使用开源社区的创新。学习使用 Karpenter 等技术使用 Spark 构建大规模数据处理的最佳实践。 ## 演讲精华 <font color = "grey">以下是小编为您整理的本次演讲的精华,共1300字,阅读时间大约是6分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font> Kubernetes已成为许多组织运行数据工作负载的首选平台。由于其可扩展性、协调、便携性和标准化等方面的固有优势,Kubernetes非常适合各种应用,从金融模拟到自动驾驶汽车,再到基因组学研究和[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)推荐引擎。 领先的机构如Bridgewater正使用Kubernetes在亚马逊弹性容器服务([Amazon EKS](https://aws.amazon.com/cn/eks/?trk=cndc-detail))上运行大型金融模拟,以分析全球金融市场。Mobili则利用Kubernetes为其在全球超过1.5亿辆汽车中使用的自动驾驶汽车技术提供动力。Roche制药在亚马逊弹性容器服务上运行生物医学研究,该服务用于基因组学和药物发现。Pinterest依赖Kubernetes处理其数十亿针和板的[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)推荐引擎。所有这些组织都在大规模运行Kubernetes以处理大型数据集并推动核心业务价值。 Kubernetes对数据工作负载具有吸引力的重要原因之一是其能够独立扩展计算和内存。基础设施可以通过功能如Horizontal Pod Autoscaler和Cluster Autoscaler等进行扩大或缩小,以满足应用程序的需求。一些开源工具,如亚马逊云科技的Carpenter,可以帮助管理这种自动扩缩放,以确保资源水平与工作负载需求保持一致。 例如,Bridgewater需要在高峰期迅速启动1000多个节点来运行复杂模型和分析。一旦处理完成,基础设施可以缩回原状。Kubernetes提供了支持这些波动缩放模式的灵活性。 此外,Kubernetes还实现了数据工作负载的精细协调。它可以自动化诸如在发生故障时重新提交任务等重复任务。在细粒度上,可以根据每个作业而不是机器的基础设施分配CPU和内存资源。这种更精细的控制允许组织最大限度地提高资源利用率,以实现最高效的处理。 例如,Mobili使用Kubernetes精确地为每个自动驾驶汽车数据处理作业分配资源。这确保了其亚马逊弹性容器服务群集的最佳利用率。 Kubernetes的可移植性和灵活性是其主要的优势之一。通过将应用程序及其所有相关依赖(如环境变量和库)打包在一起,运行容器简化了在不同环境中推广的过程。这使得潜在的配置错误或库冲突导致的意外故障减少。这种可移植性使得罗氏制药公司能够将其基因组学管道从内部虚拟机成功迁移到EKS,而不需要重新配置任何依赖项。此外,Kubernetes支持多版本集群,这意味着可以并行运行不同版本的数据处理框架,例如Spark,从而避免了对整个集群进行繁琐的版本升级。最后,Kubernetes实现了工作负载的标准化,许多组织将其作为默认的容器编排平台。一个中心团队将构建共享的Kubernetes平台,抽象基础设施复杂性并提供核心服务,如CI/CD管道、监控和管理保护。应用团队随后可以利用该平台更快速地部署其工作负载。Pinterest就采用了这种方法,并创建了一个由基础设施团队管理的集中式EKS平台。其他产品团队使用这个平台来运行他们的服务和管道,从而大大缩短了生产时间。随着好处的显现,组织希望扩展该平台以支持更多的用例,比如数据处理。这使他们不仅能够复用现有的工具和自动化,还能够利用围绕Kubernetes的专业知识。尽管Kubernetes带来了这些优势,但在构建大规模数据平台时,公司通常还会遇到一些挑战。亚马逊云科技认识到了客户所面临的模式问题,并发布了一个名为Data on EKS的开源项目来帮助解决这些问题。这个项目包括了参考架构、基础设施即代码模板和示例代码,以帮助用户更快地部署系统。关注的重点领域包括:——配置计算、网络和存储,以便可以呈指数级扩展数据量——为有状态应用程序(如Spark和Kafka)构建高可用性——设置数千个节点和数百万个作业/容器的可观察性——选择合适的技术,如批量调度程序、shuffle服务,以及实例类型通过这些最佳实践,Data on EKS广泛传播了这一知识,促进了在Kubernetes上关于开源数据处理的创新。 Apache Spark,作为最常见的一类数据处理引擎,已在EKS(Elastic Kubernetes Service)上得到了广泛应用。Pinterest分享了他们从Hadoop迁移至EKS上的Spark批处理工作负载的过程,从而优化了其基础设施并提高了云中的规模和成本效益。 Pinterest作为一个平台,需要处理大量的数据,涵盖庞大的生态体系。其Hadoop集群在超过14,000个节点上运行,最大的集群拥有2,500个节点。他们每天处理数百PB的数据,S3中的总数据量超过半个EB。因此,从Hadoop迁移的过程中必须维持这一庞大的规模。 Pinterest已经在Spark的基础上取得了很大的进展,并将Hive和MapReduce作业移植到了新的平台上。然而,EKS为他们提供了一个现代化的机会,以及进一步提高成本效益的可能性。在完全管理的Kubernetes服务中运行Spark的能力非常具有吸引力。 要将系统迁移到EKS,需要构建一系列支持服务来满足他们在Hadoop环境中已有的需求。这包括部署Spark Kubernetes operator以与EKS控制平面进行交互。他们选择Unicorn作为调度工作负载的服务,因为它具有与Hadoop中的YARN类似的功能。此外,他们还实现了远程shuffle服务,以实现规模的扩展和自动缩放。他们的任务提交框架、存储层、监控以及其他核心基础设施都必须进行调整或重构,以适应EKS的环境。 这一转变并非没有挑战。在网络和负载测试方面,需要在EKS上进行重新验证,以确保它能够处理他们每天70,000个任务的规模。从Hadoop的完全控制转向EKS也意味着要适应不同的发布节奏和集群升级时间。然而,这些挑战所带来的好处远远超过了它们带来的问题。 Pinterest通过在EKS上使用Graviton CPU实现了显著的成本优化,节省了高达40%的成本。他们对EKS控制平面API的深度访问提供了灵活性。他们的开发周期由于Kubernetes的敏捷性而大大加快。他们计划将EKS扩大到其他大数据工作负载,如Flink和Trino。尽管他们的Hadoop基础设施花费了数年才得以建立,但这种向EKS的过渡有望在仅仅两年内改变他们的数据基础设施。 根据Pinterest的经验,亚马逊云科技已经整理了一些最佳实践,以帮助其他客户成功地在大规模运行数据工作负载,如Spark,并在EKS上实现这一目标。一些关键建议包括: 在应对大规模集群扩展时,可以通过分配大型次要IP范围来避免地址耗尽。通过横向扩展CoreDNS并禁用本地DNS缓存,可以提高DNS服务的性能。为了提高随机数据处理的吞吐量,可以使用连接了NVMe SSD存储的EC2实例。若有多个可用磁盘,建议配置成RAID0以提高安装和分区的简便性。为确保稳定性,可将Spark驱动程序运行在按需实例上,而将执行器使用Spot实例以降低费用。Carpenter等工具可以协助进行故障恢复和重试操作。借助Graviton3 CPU,可以实现对数据工作负载的性能优化。将PySpark的内存开销系数从0.1提高至0.4,以减少频繁的内存不足错误。运用自动伸缩功能,如Carpenter,能够快速调整和终止节点以满足工作负载的需求。部署多队列调度程序,例如Unicorn或Volcano,以实现工作负载的隔离、配额和预留资源。使用Prometheus收集Spark指标并将其存储在Managed Prometheus中,以便在Grafana仪表板中进行可视化分析。将日志传输至S3后,可使用Athena进行数据分析。遵循这些最佳实践有助于企业在EKS中扩展Spark以满足庞大的数据处理需求,同时优化性能和成本。Pinterest等公司的实践经验表明,Kubernetes可以为数据团队带来革命性的价值。随着越来越多的企业选择EKS作为其托管的Kubernetes环境,诸如Data on EKS之类的参考架构和自动化加速了部署的成功。Kubernetes凭借其可扩展性、弹性和标准化功能,已成为支持全球最严苛的数据工作负载的基础设施,这些工作负载涵盖了金融服务、自动驾驶汽车、基因组研究和[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)等领域。 **下面是一些演讲现场的精彩瞬间:** 亚马逊云科技的ECS项目利用蓝本和资源,为客户提供了在[Amazon EKS](https://aws.amazon.com/cn/eks/?trk=cndc-detail)上构建现代化数据平台的便捷工具。 ![](https://d1trpeugzwbig5.cloudfront.net/CON309-Data_processing_at_massive_scale_on_Amazon_EKS/images/rebranded/CON309-Data_processing_at_massive_scale_on_Amazon_EKS_0.png) Pinterest已经建立了一个强大的数据处理管道,用于处理用户数据并生成个性化推荐内容。 ![](https://d1trpeugzwbig5.cloudfront.net/CON309-Data_processing_at_massive_scale_on_Amazon_EKS/images/rebranded/CON309-Data_processing_at_massive_scale_on_Amazon_EKS_1.png) 如今,Pinterest正致力于将更多业务迁移至亚马逊云科技,并与Pinterest服务网格、P park迁移、更细粒度的访问控制以及开源组件进行整合,以推动社区的持续发展。 ![](https://d1trpeugzwbig5.cloudfront.net/CON309-Data_processing_at_massive_scale_on_Amazon_EKS/images/rebranded/CON309-Data_processing_at_massive_scale_on_Amazon_EKS_2.png) 领导层强调了亚马逊云科技批量任务调度的关键特性,该特性将作业视为一个整体应用程序而非单独调度的Pod。 ![](https://d1trpeugzwbig5.cloudfront.net/CON309-Data_processing_at_massive_scale_on_Amazon_EKS/images/rebranded/CON309-Data_processing_at_massive_scale_on_Amazon_EKS_3.png) 建议在使用EKS进行部署时,采用如Fluent Bit等开源工具中的额外过滤器,以减少API调用并提高性能。 ![](https://d1trpeugzwbig5.cloudfront.net/CON309-Data_processing_at_massive_scale_on_Amazon_EKS/images/rebranded/CON309-Data_processing_at_massive_scale_on_Amazon_EKS_4.png) ## 总结 本视频探讨了在[Amazon EKS](https://aws.amazon.com/cn/eks/?trk=cndc-detail)上大规模运行数据处理工作负载的问题。首先阐述了为何Kubernetes对于数据处理非常适用,强调了其可扩展性、协同作用、便携性和标准化等优势。 随后,讲述了亚马逊云科技的EKS数据项目,该项目提供了参考架构、基础设施即代码模板以及示例代码,旨在协助客户遵循亚马逊云科技的最佳实践,在EKS上构建现代化的数据平台。主要应用场景包括运用Spark进行[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)和大数据处理。 接着,对如何在EKS上运行诸如Kafka、Spark、Flink等开源数据平台进行了概括说明。讲解了如何在Kubernetes上使用Spark——Spark驱动程序在一个容器中运行,而执行程序则在单独的容器中运行,由无头服务进行协调。 然后,分享了一个关于Pinterest迁移至EKS上Spark的案例研究。迁移的原因是为了转向更加云端化和更为敏捷的平台。Pinterest在EKS上构建了围绕Spark的一系列活动支持服务,以便在大规模上运行作业。取得的成果包括利用Graviton处理器和EKS的API。过程中遇到的问题包括网络负载以及与Pinterest基础设施的集成。 最后,列举了在EKS上大规模运行Spark的一些建议最佳实践: - 提供大型VPC和子网以避免IP地址耗尽 - 水平扩展CoreDNS并使用本地DNS缓存以避免性能问题 - 使用高性能存储选项,例如配置RAID0的NVMe SSD - 将驱动程序安装在预留的实例上,将执行程序安装在Spot实例上 - 适当调整PySpark和Spark on Kubernetes的记忆占用因子 - 利用集群自动缩放器和Carpenter等自动调整工具 - 使用Apache Unicorn等高级调度程序实现多租户、集群调度和工作负载隔离 - 使用Prometheus、Grafana和Fluent Bit等工具实施监控、指标和日志记录 总的来说,EKS为大规模的数据处理工作提供了可扩展的云原生平台,但需要针对大规模管理作业添加额外的服务和优化。 ## 演讲原文 ## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站! [2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站") [点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯! [点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯! ## 即刻注册亚马逊云科技账户,开启云端之旅! [【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“") [【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭