大数据SaaS应用落地经验分享

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 在过去几年中,我们自己开发的大数据SaaS应用大数据实验室采用混合云体系结构在全国各地进行了几十次部署。在实际使用过程中,遇上了非常多的问题。本文主要分享在实际软件开发和维护过程中遇上的各种问题和解决方案分享。

在过去几年中,我们自己开发的大数据SaaS应用大数据实验室采用混合云体系结构在全国各地进行了几十次部署。在实际使用过程中,遇上了非常多的问题。本文主要分享在实际软件开发和维护过程中遇上的各种问题和解决方案分享。
# - 一、大数据实验室介绍
大数据SaaS应用大数据实验室是指:旨在帮助大数据从业人员和学生更好地了解和学习大数据产品以及各种大数据真实案例,快速进行大数据科研创新的软件产品包。大数据实验室作为一站式大数据实训和科研创新平台,为各行业用户提供简单易用的大数据真实环境,让数据价值触手可及。用户可通过简单快捷的可视化操作,对各种大数据进行数据采集、数据加工、数据开发、数据管理、数据分析和机器学习等操作,快速探索各种大数据创新应用。
大数据实验室底层采用混合云架构,中间层部署了一系列PaaS引擎,上层部署了软件包和课程包的SaaS应用,具体如下图所示:
2000.png

  1. 大数据实验室后台支撑平台: 部署在高配的阿里云ECS+RDS+OSS上,并根据访问负载扩容ECS带宽。大数据实验室后台支撑平台主要完成大数据实验室整体架构的搭建,负责整个实验室的安全管理、资源调度、权限管控等,完成分布式环境下每个用户都拥有自己独立的多租户,相互之间的数据、文件和项目都实现完全隔离。
  2. 离线分布式计算平台引擎:公有云采用阿里云云原生大数据计算服务 MaxCompute,私有云采用Apache Hadoop 3.0+ Apache Spark 3.2 。通过混合云对接模块,大数据实验室实现上层SaaS应用与底层公有云和私有云离线分布式计算资源的对接。公有云环境下,针对每个用户每个单独的实验开辟出独立的公共云资源,完成相应的驱动转换,保障每个用户都在独立的多租户环境中完成相应的实验。支持RAM子账号模式,支持多个学生消费的云资源在同一个主账号进行计费。私有云环境下,针对每个具体实践开辟出独立的虚拟机资源,生成多租户实践环境。
  3. 机器学习平台: 公有云采用阿里云机器学习平台PAI, 私有云主要使用开源TensorFlow 2.0。通过混合云对接模块,大数据实验室实现上层SaaS应用与底层公有云和私有云机器学习平台计算资源的对接。
  4. 大数据ETL引擎: 公有云采用阿里云大数据开发治理平台 DataWorks,私有云采用开源Kettle等。通过混合云对接模块,大数据实验室实现与底层大数据ETL引擎功能对接,支持实验数据、案例数据和科研数据的的导入导出等功能。数据接口提供多种方式支持,比如service接口方式、数据文件导出支持(CSV、TXT等)、数据文件的导入支持等。
  5. 数据可视化和BI报表引擎: 公有云采用阿里云报表工具QuickBI和数据可视化大屏引擎DATAV, 私有云采用开源工具Echarts等;
  6. 中间层PaaS引擎: 公有云主要使用阿里云提供的各种PaaS引擎服务,私有云部分主要基于开源引擎提供相应的功能;
  7. 上层SaaS应用: 具体包括实训室的管理功能、科研平台的管理功能、混合云负载管理功能等。

# - 二、实际使用过程中遇上的问题
过去几年我们在全国部署了很多套大数据实验室,随着大数据实验室部署的客户越来越多和每个用户内部使用人数的扩大,大数据实验室后台支撑平台公有云访问峰值用户数超过了10万人,每个用户现场部署的私有云峰值访问用户数也超过了千人。随着业务负载越来越大,整个大数据实验室系统遇上了各种性能相关的问题。同时,随着阿里云各个底层平台的升级, 构建在其上的大数据实验室SaaS软件不兼容的问题也逐步凸显。以下是总结后遇上的部分问题:
1. 业务负载压力上升过快, 现有ECS带宽负载吃紧, 无法满足大数据实验室业务峰值时访问负载需求。
2. 在私有云环境中,原生Apache HIVE集群访问并发受限,当业务负载升级到千人以上出现集群不响应现象。
3. 混合云用户管理无法做到统一,公有云和私有云底层平台用户和大数据实验室用户管理系统出现杂乱现象,版本升级时容易出现问题。
4. 多个集群的统一管理遇上问题,底层使用的各种公有云集群和私有云集群各种资源,如何做到统一管控是一个系统性问题。
5. 在业务峰值时,系统负载不均衡现象越来越严重。随着互联网技术的发展,大并发和海量数据处理场景越来越普遍,很多用户所使用的SaaS软件也逐步过渡到分布式架构体系中来。我们在实际部署SaaS软件的过程中,逐步发现在应用上层面临着越来越大的压力,瞬间访问负载激增的情况下SaaS应用面临访问崩溃的风险。

# - 三、相关问题解决经验分享
经过多个项目的实际试错和调整,上述问题目前采用如下方式进行了初步解决:
1. 针对业务负载持续上升的问题,主要通过以下方式进行解决:
a) 首先对ECS带宽进行扩容,从整体上保障业务运行所需的带宽资源。
b) 其次是优化SaaS软件中所有交互相关的内容资源,比如课程包中的PDF文档、数据文件、PPT和视频等,都是需要高并发的同时打开, 非常消耗带宽资源,通过优化和压缩内容资源的大小, 整体降低所需带宽资源负载需求。
c) 最后尝试对内容资源进行序列化并通过压缩算法将内容资源进一步压缩大小,从而提升现有带宽利用效率。
2. 针对在私有云环境中,原生Apache HIVE集群访问并发压力过大的问题,主要通过以下几种方式进行解决:
a) 在架构上,针对高并发访问需求的用户, 在实际部署过程中通过部署多个Apache Hive集群的方式予以解决。
b) 同时弹性负载均衡组件负责调度用户访问需求,防止热点数据节点出现。
3. 针对混合云用户管理杂乱的现象,主要通过以下方式进行解决:
a) 从架构上进行优化,增加混合云用户管理模块,并增加一层映射,以大数据实验室内部用户和权限管理为主,并分别对应其所需访问的底层集群资源用户名、密码和访问权限等。
b) 从运维部署角度,提供公有云RAM子账户和私有云集群账户创建初始化脚本和模板,进一步简化部署难度。
4. 针对多个集群的统一管理和调度的问题,主要在架构层面进行优化,增加多集群管控组件用来来解决混合云环境下多个大数据集群、机器学习机器的集成管控问题,统一协调负载实现实验室整体高可用和高并发访问,具体包括以下功能:
a) 混合云架构下底层多种大数据集群和机器学习集群的统一管控
b) 解决私有云环境下Hadoop机器以及Spark集群并发负载偏小的问题,通过并发多集群的方式实现整体实验室环境的高可用和高并发
c) 解决公有云环境下多种大数据ETL机器、大数据离线分布式计算机器、流计算机器和机器学习机器的集中管控问题
5. 针对在业务峰值时,系统负载不均衡现象,主要通过以下方式进行解决:
a) 在系统整体层面,新增负载均衡组件,通过对多台云服务器进行均衡的流量分发调度,消除单点故障提升应用系统的可靠性与吞吐力。
b) 负载均衡组件通过使用散列函数(Hash function)进行负载均衡分发,在应用层弹性负载均衡主要基于散列函数(Hash function)的方式实现,并在后续版本迭代过程中将散列函数升级为一致性哈希算法。
c) 散列函数(Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。好的散列函数在输入域中很少出现散列冲突。在散列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到。--维基百科散列函数定义。
d) 在软件开发过程中,我们主要通过散列表(哈希表)的方式存储相应的数据记录,支持弹性负载均衡组件可以使用散列表快速检索和查询到相关的数据记录以便进行负载分发。
e) 在新的弹性负载均衡开发过程中,引入分布式散列表(DHT),也就是使用分布式散列表DHT取代传统的散列表,通过使用一致性哈希来划分分布式系统的节点。 通过使用一致性哈希算法,优化弹性负载均衡的分发过程,相比于传统哈希表中添加或者删除一个槽位基本上需要对所有的关键字进行重新映射,在使用一致性哈希算法时,哈希表槽位数的改变平均来看只需要对K/N 个关键字重新映射(K:关键字数量; N: 槽位数量)。一致性哈希算法最早是由麻省理工学院(MIT)的Karger等人提出的,其在1997年发表的《Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web.》学术论文中介绍了如何使用一致性哈希算法解决分布式Web服务中用户易变的问题。
2001.png

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
3天前
|
存储 机器学习/深度学习 数据采集
深入解析大数据核心概念:数据平台、数据中台、数据湖与数据仓库的异同与应用
深入解析大数据核心概念:数据平台、数据中台、数据湖与数据仓库的异同与应用
|
3天前
|
存储 缓存 NoSQL
深入解析Memcached:内部机制、存储结构及在大数据中的应用
深入解析Memcached:内部机制、存储结构及在大数据中的应用
|
8天前
|
机器学习/深度学习 设计模式 人工智能
面向对象方法在AIGC和大数据集成项目中的应用
【8月更文第12天】随着人工智能生成内容(AIGC)和大数据技术的快速发展,企业面临着前所未有的挑战和机遇。AIGC技术能够自动产生高质量的内容,而大数据技术则能提供海量数据的支持,两者的结合为企业提供了强大的竞争优势。然而,要充分利用这些技术,就需要构建一个既能处理大规模数据又能高效集成机器学习模型的集成框架。面向对象编程(OOP)以其封装性、继承性和多态性等特点,在构建这样的复杂系统中扮演着至关重要的角色。
26 3
|
13天前
|
存储 分布式计算 大数据
惊了!大数据时代来袭,传统数据处理OUT了?创新应用让你眼界大开,看完这篇秒变专家!
【8月更文挑战第6天】在数据爆炸的时代,高效利用大数据成为关键挑战与机遇。传统数据处理手段难以胜任现今海量数据的需求。新兴的大数据技术,如HDFS、NoSQL及MapReduce、Spark等框架,为大规模数据存储与处理提供了高效解决方案。例如,Spark能通过分布式计算极大提升处理速度。这些技术不仅革新了数据处理方式,还在金融、电商等领域催生了风险识别、市场预测及个性化推荐等创新应用。
36 1
|
22天前
|
机器学习/深度学习 存储 分布式计算
驾驭数据洪流:大数据处理的技术与应用
大数据处理不仅是信息技术领域的一个热门话题,也是推动各行各业创新和发展的重要力量。随着技术的进步和社会需求的变化,大数据处理将继续发挥其核心作用,为企业创造更多的商业价值和社会贡献。未来,大数据处理将更加注重智能化、实时性和安全性,以应对不断增长的数据挑战。
|
1月前
|
分布式计算 大数据 Spark
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
《Spark大数据处理:技术、应用与性能优化》深入浅出介绍Spark核心,涵盖部署、实战与性能调优,适合初学者。作者基于微软和IBM经验,解析Spark工作机制,探讨BDAS生态,提供实践案例,助力快速掌握。书中亦讨论性能优化策略。[PDF下载链接](https://zhangfeidezhu.com/?p=347)。![Spark Web UI](https://img-blog.csdnimg.cn/direct/16aaadbb4e13410f8cb2727c3786cc9e.png#pic_center)
76 1
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
|
2月前
|
搜索推荐 安全 大数据
大数据在医疗领域的应用与前景
【6月更文挑战第26天】大数据在医疗领域提升服务效率,助力疾病预防与精准治疗。电子病历优化数据管理,疾病预测预防个性化医疗成为可能。未来,智能医疗系统普及,远程医疗兴起,数据共享促进行业发展,同时隐私保护与安全备受关注。大数据正重塑医疗,开启健康新篇章。
|
2月前
|
SQL 运维 druid
深度分析:Apache Doris及其在大数据处理中的应用
Apache Doris是一款开源的高性能实时分析数据库,设计用于低延迟SQL查询和实时数据处理,适合大规模实时分析场景。与Apache Druid、ClickHouse和Greenplum相比,Doris在易用性和实时性上有优势,但其他产品在特定领域如高吞吐、SQL支持或数据处理有特长。选型要考虑查询性能、实时性、SQL需求和运维成本。Doris适用于实时数据分析、BI报表、数据中台和物联网数据处理。使用时注意资源配置、数据模型设计、监控调优和导入策略。
|
2月前
|
消息中间件 存储 大数据
深度分析:Apache Kafka及其在大数据处理中的应用
Apache Kafka是高吞吐、低延迟的分布式流处理平台,常用于实时数据流、日志收集和事件驱动架构。与RabbitMQ(吞吐量有限)、Pulsar(多租户支持但生态系统小)和Amazon Kinesis(托管服务,成本高)对比,Kafka在高吞吐和持久化上有优势。适用场景包括实时处理、数据集成、日志收集和消息传递。选型需考虑吞吐延迟、持久化、协议支持等因素,使用时注意资源配置、数据管理、监控及安全性。
|
2月前
|
消息中间件 分布式计算 Kafka
深度分析:Apache Flink及其在大数据处理中的应用
Apache Flink是低延迟、高吞吐量的流处理框架,以其状态管理和事件时间处理能力脱颖而出。与Apache Spark Streaming相比,Flink在实时性上更强,但Spark生态系统更丰富。Apache Storm在低延迟上有优势,而Kafka Streams适合轻量级流处理。选型考虑延迟、状态管理、生态系统和运维成本。Flink适用于实时数据分析、复杂事件处理等场景,使用时注意资源配置、状态管理和窗口操作的优化。

热门文章

最新文章