「AI投研邦」团体会员上线!75折解锁会员权益、PDF版研报、AI峰会....
06-18
优化大数据计算与存储分离架构的最佳实践1。当前大数据面临的挑战近年来,随着大数据规模的增长和大数据应用的发展,大数据技术的架构也不断演进。
早期的技术架构是计算资源和存储资源高度集成的。计算和存储资源的整合带来了以下明显的挑战: 数据孤岛:如今,企业拥有PB级数据已成为常态,EB级数据时代即将到来。
企业需要为结构化数据、非结构化数据、实时数据等多种类型的数据提供高度可扩展、统一的数据管理和数据存储能力。刚性扩展:在数据空间不断增长的背景下,大数据应用场景不断增多,对企业算力的需求也不断加剧。
同时,新产品发布、热点事件等引发的业务激增也要求企业大数据系统具有极致的弹性。利用率低:大数据行业技术栈迭代快。
企业自建IDC中心、部署自己的软件,一次性投资大、折旧成本高、运维负担重。作业拥堵:随着业务的发展和数据量的巨大,单个分析作业往往需要读取TB-PB级别的数据。
在多任务并发的情况下,很容易出现作业拥塞的情况。 面对上述挑战,基于私有数据中心的存储与计算一体化的传统大数据架构已经无法满足企业海量数据分析的需求。
业内知名分析机构IDC在最新报告中明确指出:企业上云已成为必然趋势。因此,在公有云上部署更加灵活高效的大数据分析平台将成为企业的必然选择。
2、腾讯云弹性MapReduce(EMR)支持开箱即用的计算与存储分离。目前,越来越多的企业开始选择使用计算与存储分离架构,以应对较低的成本需求并兼顾资源扩展的灵活性。
。传统计算与存储一体化架构 计算与存储分离架构 目前腾讯云Elastic MapReduce(EMR)[1]支持三种存储系统:EMR-HDFS、EMR-COS [2]、EMR-CHDFS [3],其中EMR-COS EMR -EMR中的CHDFS是开箱即用的原生解决方案,支持计算和存储分离。
其具体应用场景及特点如下: 特性 EMR-HDFSEMR-COSEMR-CHDFS 存储空间集群规模相关 海量海量可靠性高元数据效率快慢快弹性效率中高高数据本地化高低低带宽成本低高高网络风暴低高 中 元数据操作效率高,可与 HDFS 相媲美,可有效避免 COS 文件系统元数据操作耗时且可能因高频访问而带来的不稳定问题。但在实际使用场景中,由于可能存在多个数据存储源,管理复杂,部分业务场景需要对数据源进行密集IO访问,导致网络压力大、访问不稳定等问题。
因此,我们基于Alluxio进一步优化计算和存储架构,以更好地满足业务应用的需求。 3、基于Alluxio优化的计算与存储分离架构,解决了传统计算与存储分离的计算与存储不匹配的问题,实现算力按需使用,大幅节省运维规划时间和闲置算力成本。
但直接采用计算存储分离架构也带来了新的问题: 1. 在IO密集型场景下,网络带宽会成为瓶颈,可能导致计算和存储资源利用率不足。 2.数据本地化不足,导致大量洗牌。
过程中的重复计算造成了一定的计算资源浪费。 3、存储源可能有多个甚至异构,增加了管理难度。
为此,腾讯云EMR团队与Alluxio社区合作,推出最新的alluxio2.3.0 Release版本进行深度优化,推出开箱即用的计算存储分离优化版本:EMR2.5.0/EMR3。 1.0/EMR-TianQiong-1.0解决了以上问题。
提供内存级I/O能力:Alluxio可以用作分布式共享缓存服务,以便与Alluxio通信的计算应用程序可以透明地缓存经常访问的数据(尤其是来自远程位置的数据),以提供内存级I/O吞吐率。此外,Alluxio的分层存储机制可以充分利用内存、固态硬盘或磁盘,降低数据驱动应用的成本,并具有弹性扩展特性。
提高数据局部性:利用Alluxio提供的分布式缓存服务,在部署Alluxio数据节点(Alluxio-Worker)并与计算节点部署在一起时,可以以内存级别的IO速度直接从数据节点检索和读取数据而不是从底层云存储或对象存储中检索和读取,可以提高数据局部性。简化云存储和对象存储访问:与传统文件系统相比,云存储系统和对象存储系统使用不同的语义,这些语义对性能的影响也与传统文件系统不同。
列出目录和重命名等常见文件系统操作通常会给云存储和对象存储系统带来巨大的性能开销。当访问云存储中的数据时,应用程序没有节点级数据局部性或跨应用程序缓存。
简化的数据管理:Alluxio 提供对多个数据源的单点访问。除了连接不同类型的数据源外,Alluxio还允许用户同时连接同一存储系统的不同版本,例如云端的多个版本的HDFS和COS/CHDFS,具有基于简单的配置下发和管理功能在 EMR 套餐上。
。引入Alluxio之后,EMR基于Alluxio存储计算分离的整体架构变成了:基于Alluxio的计算存储分离架构。
这样EMR的计算引擎(Spark、MapReduce、Presto等)就可以统一使用Alluxio来提高性能、降低成本。峰值网络带宽,并简化数据管理。
4.性能评估和调优为了分析和了解使用Alluxio存储的主流查询引擎Spark的性能差异,我们使用大数据压力测试工具TPC-DS进行了一些性能压力测试。我们使用的环境和配置如下: EMR版本:EMR-2.5.0 选择组件:zookeeper-3.6.1、hadoop-2.8.5、hive-2.3.7、spark_hadoop2.8-3.0.0、tez-0.9 .2、alluxio-2.3.0、knox-1.2.0压力测试配置,使用1个EMR Master节点和25个CORE节点,详情如下:MASTERCORE数量型号EMR-SA2EMR-IT3CPU8C16CMEMORY32G64G盘高效云盘1* G本地SSD 2*T4.1带宽评估 1T数据带宽评估 30T数据带宽评估 从压力测试结果可以看出,可以极大优化计算存储分离网络带宽,节省20%-50%峰值带宽(削峰),并节省总带宽(10%-50%)。
4.2 查询性能评估 1T 数据性能评估 30T 数据性能评估 从压力测试结果可以看出,大多数场景下,特别是IO密集型场景,性能都可以得到优化,优化后的性能为5%-40%。 4.3 性能调优和专项优化 为了更好地满足计算和存储分离场景,EMR 团队对 Alluxio 进行了专项调优,包括: 4.3.1 数据局部性。
为了更好的满足数据局部性,EMR在核心节点部署了Alluxio,将alluxio-worker和计算节点部署在一起,使得yarn等计算服务节点可以与同一节点内的alluxio-worker节点进行通信,大大提高了效率。另一方面,结合alluxio已经提供的读写策略,基于存储计算分离场景优化了block.read.location.policy、writetype.default等策略,使得alluxio的缓存能力能够更好满足当地。
4.3.2 元数据优化 Alluxio基于Presto实现了Catalog Service,并在计算框架侧实现了Connector。 Alluxio可以感知和管理结构化数据的元数据,大大简化了表级别的使用成本。
同时,当腾讯大规模使用Alluxio时,我们发现Alluxio自身的inode元数据也存在扩容的风险。为此,结合Alluxio提供的Catalog Service和Path缓存能力,对path.caching.thread、path.cache.capacity等策略进行了优化。
更详细的元优化请参考社区元优化[4]和目录介绍[5]。 4.3.3 Java GC的影响 作为一个Java进程,Alluxio的GC经常会影响其性能。
为此,EMR团队引入了经过内部大数据和AI等业务场景验证的腾讯Kona,为JAVA生态提供专业服务。持续保护。
Kona在GC线程调度优化、物理内存释放优化等方面都有出色的表现,更多功能可以参见Kona JDK[6]。 针对以上能力和优化,在存储与计算分离的场景下,腾讯云EMR产品直接针对该场景提供了开箱即用的能力。
可以直接在腾讯云EMR产品购买页面创建,或者已经支持。安装在alluxio的EMR版本上,即可得到性能评估结果。
5、总结 从上面的压测结果可以看出,一方面,有效降低了峰值带宽和总带宽,从而降低了带宽成本,加速了访问;另一方面,IO密集型场景下的性能也得到了很大的提升,可以使其更加高效。对IO密集场景下的业务有很好的支持。
这种基于Alluxio的优化让腾讯云的弹性MapReduce(EMR)产品能够更好地支持存储计算分离架构,让用户更好地满足业务需求的同时降低成本并保持资源扩展的灵活性。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-06
06-18
06-17
06-18
06-21
06-21
06-06
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用