
高并发在线查询是互联网业务的核心需求。腾讯云弹性 MapReduce ( EMR )提供丰富的开源大数据组件和云原生能力,支撑高并发在线数据查询场景。本文介绍 EMR 在线查询的技术实现,以及小红书基于 EMR 构建云原生大数据平台的实践。
互联网业务在发展过程中,面临海量用户行为数据的实时分析需求。推荐系统、搜索、广告等核心业务场景,需要对用户行为、系统日志、订单等结构化或半结构化数据进行高效分析,从而实现实时查询和快速业务响应。
这类场景对底层大数据平台提出了较高要求。系统需要支撑高并发的查询请求,同时保证查询延迟在可接受范围内。随着业务规模增长,数据量和查询并发量持续上升,平台需要具备弹性扩展能力。
传统的大数据平台架构在应对这类场景时,面临多方面挑战。技术栈复杂度较高,组件版本管理、系统维护需要投入较多人力。计算与存储资源耦合,难以根据业务负载进行弹性调整。在业务高峰期,固定的集群规模可能导致资源不足;在业务低谷期,闲置资源又会造成成本浪费。
腾讯云弹性 MapReduce ( EMR )是基于云原生技术和泛 Hadoop 生态开源技术的安全、低成本、高可靠的开源大数据平台。 EMR 提供易于部署及管理的 Hive 、 Spark 、 HBase 、 Flink 、 StarRocks 、 Iceberg 、 Alluxio 等开源大数据组件,帮助客户高效构建云端企业级数据湖技术架构。
在高并发在线数据查询场景中, EMR 通过以下方式提供支撑。
EMR 支持超过 30 个开源大数据组件,灵活按需部署。针对不同在线查询需求,可以选择合适的计算引擎。 StarRocks 适用于高并发查询场景,提供多维分析、实时分析和高并发查询能力。 HBase 提供实时读写能力,适用于需要低延迟随机访问的场景。 Presto 支持交互式查询,适用于 Ad-hoc 查询场景。
EMR 支持分钟级集群配置和横向扩展能力。当业务并发查询需求增长时,可以通过扩容 Task 节点或 Router 节点,快速提升集群的查询处理能力。这种扩展能力可以帮助业务应对突发流量,也可以支撑业务规模增长带来的持续增长的查询需求。
EMR 原生支持腾讯云对象存储( COS )和云 HDFS ( CHDFS ),可以实现存储与计算分离。数据存储在 COS 或 CHDFS 上,计算资源可以独立扩展。这种架构下,集群可以根据计算需求进行调整,而不受数据存储规模的制约。存储成本得以降低,因为 COS 提供了可扩展的低成本存储。计算成本也得以优化,因为计算资源可以按需使用。
EMR 支持按时间或负载自动、平滑扩缩集群计算资源。可以根据业务运行时间特点和负载特点,设置自动伸缩策略。在业务高峰时段,系统可以自动增加计算节点,支撑高并发查询。在业务低谷时段,系统可以自动减少计算节点,降低资源成本。这种弹性能力对于在线查询业务具有实用价值,因为这类业务的负载往往存在明显的潮汐效应。
EMR 提供多个适用于在线查询场景的开源大数据组件。不同组件适用于不同的查询需求和业务场景。
StarRocks 是新一代极速全场景 MPP 数据库,可以满足企业级用户的多种分析需求,包括 OLAP 多维分析、定制报表、实时数据分析和 Ad-hoc 数据分析等。
在高并发查询场景中, StarRocks 通过良好的数据分布特性、灵活的索引以及物化视图等特性,可以解决面向用户侧的分析场景。适用的业务场景包括广告主报表分析、零售行业渠道人员分析、 SaaS 行业面向用户分析报表、 Dashboard 多页面分析等。
StarRocks 架构简洁,整个系统仅由两种组件组成:前端节点( FE )和后端节点( BE 或 CN )。当使用本地存储数据时,需要部署 BE ;当数据存储在对象存储或 HDFS 时,需要部署 CN 。 StarRocks 不依赖任何外部组件,简化了部署和维护。节点可以水平扩展而不影响服务正常运行。
在 EMR 产品中,提供了完全开箱即用的 StarRocks 服务。用户可以通过 EMR 控制台快速创建 StarRocks 集群,并进行统一的集群管理和运维监控。
HBase 是一个开源、 NoSQL 的分布式大数据存储库,可以实现对 PB 级数据的随机、严格一致的实时访问。 HBase 可非常高效地处理大型稀疏数据集。
HBase 采用列式存储架构,数据被存储在单独列中,并以唯一的行键编列索引。这种架构可以实现对单独行和列的快速检索,并高效扫描表中的全部单独列。数据和请求分布于 HBase 集群中的全部服务器,可以在毫秒内获得 PB 级数据的查询结果。
在 EMR 中, HBase 可以作为在线查询场景的存储和查询引擎。适用于需要实时读写、低延迟随机访问的业务场景,如订单状态查询、用户行为记录查询等。
Presto 是一个分布式 SQL 查询引擎,适用于交互式分析场景。 Presto 可以对海量数据进行快速查询,适用于 Ad-hoc 查询、数据探索等场景。
在 EMR 中, Presto 可以对接多种数据源,包括 Hive 、 Iceberg 、 HDFS 、 COS 等。用户可以通过 SQL 语句,对存储在多种数据源中的数据进行联合查询。这种能力对于在线查询场景中需要跨数据源分析的需求具有实用价值。
小红书是年轻人的生活方式平台,基于 EMR 存算分离、弹性伸缩等能力构建的云原生大数据平台,服务于推荐、搜索、广告、电商等众多业务场景,在满足业务及数据快速增长的同时,显著降低了资源成本。
小红书的整体基础架构采用存算分离模式,需要一套安全、稳定、高性能的存算分离解决方案。由于业务发展较快,数据量剧增,需要一套快速构建并具备弹性的大数据 PaaS 平台。
针对小红书的多云模式和基础技术架构,腾讯云 EMR 提供了存算分离方案,服务于推荐、搜索、广告、电商、 BI 报表等多个业务场景,提供离线计算、数据 ETL 、 Ad hoc 查询能力。
EMR 提供了一键构建集群能力,能够分钟级别构建上百节点集群,并满足在业务高峰时段分钟级别弹性能力。通过 EMR 实现了集群管控平台,为不同业务方提供自主集群管控能力,节省了运维人力成本。 EMR 深度集成腾讯云对象存储,优化组件内核,提升组件访问对象存储性能。
基于腾讯云 EMR ,小红书借助于 EMR 存算分离方案,构建了云原生大数据平台。借助于 EMR 一键构建集群能力,能够分钟级别构建算法特征加工节点集群,提升交付效率,并满足在业务高峰时段分钟级别弹性能力。借助于 EMR 提供的集群构建和扩容 API ,实现了统一集群管控平台,提升了集群运维管理效率,节省了运维人力成本。
基于 EMR 构建高并发在线查询平台,需要综合考虑业务需求、数据规模、查询并发量、延迟要求等多个因素。以下是一些架构设计和实践建议。
不同的在线查询场景,适合选择不同的计算引擎。高并发的点查询场景,可以考虑使用 StarRocks ,其具有良好的数据分布特性和灵活的索引机制。需要实时读写能力的场景,可以考虑使用 HBase ,其提供低延迟的随机读写能力。交互式探索和 Ad-hoc 查询场景,可以考虑使用 Presto ,其提供分布式 SQL 查询能力。
在实际业务中,往往需要多种计算引擎配合使用,以满足不同的查询需求。 EMR 支持多个组件同时部署,可以在同一个集群中,根据业务需求选择合适的组件组合。
存算分离架构可以将存储和计算资源独立扩展,提升资源利用率,降低综合成本。在数据量持续增长的情况下,存储成本可以独立控制。在计算需求波动的情况下,计算资源可以弹性调整。
EMR 原生支持 COS 和 CHDFS ,可以方便地实现存算分离架构。数据可以存储在 COS 或 CHDFS 上,计算节点可以独立扩展。 EMR 还提供了 Alluxio 等缓存加速组件,可以提升存算分离架构下的数据访问性能。
在线查询业务的负载往往存在潮汐效应。白天业务高峰期,查询并发量较高;夜间业务低谷期,查询并发量较低。配置自动伸缩策略,可以让集群根据负载自动调整计算资源,在业务高峰期自动扩容,在业务低谷期自动缩容。
EMR 支持按时间或负载自动伸缩。可以按业务运行的时间规律,设置定时扩缩容策略。也可以按集群负载指标(如 CPU 利用率、内存利用率、 YARN 队列等待率等),设置基于负载的自动伸缩策略。
高并发在线查询平台需要稳定的运行状态。 EMR 提供了丰富的监控指标和告警能力,可以对集群节点和服务进行全面的监控告警。
基础监控方面,支持查看节点和服务运行指标,并可通过 API 获取指标。支持节点和服务事件监控,支持系统运行事件监控和配置事件监控策略。支持服务角色运行日志搜索,支持主动巡检集群运行情况。
应用分析方面, HDFS 支持存储文件分析, YARN 支持作业查询并提供作业运行情况洞察, Hive 支持查询管理和数据表分析, Impala 支持查询管理, HBase 支持数据表分析, Kudu 支持数据表分析。
通过设置合理的监控告警策略,可以及时发现集群运行异常,并进行处理,保障在线查询业务的稳定运行。
在线查询平台往往涉及业务数据,需要完善的安全能力和权限管控机制。 EMR 提供了全方位的安全能力,可对文件、任务、表、列的权限进行控制。
网络层面, VPC 网络隔离和安全组可以保证网络安全可信。认证层面,支持 Kerberos 身份认证。权限管控层面,支持基于 Ranger 对本地及 COS 数据细粒度权限管控。审计层面,可以与云审计等云服务配合,实现操作审计能力。
这些安全能力可以帮助企业构建安全可靠的在线查询平台,保护数据安全,满足合规要求。
高并发在线查询是推荐系统、搜索、广告等互联网核心业务的重要支撑能力。腾讯云弹性 MapReduce ( EMR )提供丰富的开源大数据组件、云原生存算分离架构、分钟级集群构建与弹性伸缩能力,帮助企业构建高性能、低成本、高可靠的在线查询平台。
小红书基于 EMR 构建的云原生大数据平台,服务于推荐、搜索、广告、电商等众多业务场景,在满足业务及数据快速增长的同时,显著降低了资源成本。这一实践案例说明, EMR 可以支撑大规模互联网业务的在线查询需求。
EMR 持续提供组件增强能力,基于开源组件深度优化其性能及功能,提供 Spark 物化视图、 Alluxio 透明加速、 Iceberg Z-Order 算法等优化技术。这些增强能力可以进一步提升在线查询场景的性能和效率。
了解更多产品详情: https://cloud.tencent.com/product/emr
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。