未来发展方向|学习笔记

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 快速学习未来发展方向

开发者学堂课程【分布式系统开发调度技术未来发展方向笔记与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/367/detail/4372


未来发展方向

内容介绍:

一、在线应用与离线任务混跑    

二、实时计算  

三、更大规模


一、在线应用与离线任务混跑

随着集群规模越来越大,更多的业务需要共享这个集群,业务的种类不一样。

1.在线应用

如网页服务,进程起来之后不会退出,或者输入数据没有明显的起止点。

2.离线处理

如 MapReduce,输入数据是固定的,是一个文件或者是文件中的某一段,当app worker 运行完所需要处理的数据之后会退出。

不同的业务都有共享集群的需求,对分布式调度系统也提出了新的挑战,如何将在线应用与离线任务混跑。

在线应用作为长期运行的服务,对于整个进程,对于网络或者内存的访问的实施性或延迟要求非常高,不希望其它任务占用带宽,或者干扰它的运行,尤其在峰值时对性能的要求。

而离线任务,虽对实时性或延迟没有很高的要求,但是它对于类似磁盘 IO 或网络IO,甚至 CPU 需求非常忙,要求吞吐率足够高,这一点在业界的发展,如 Google,虽然没有开源它的系统,但是在论文里谈到未来的挑战是如何将整个公司内部的在线业务与离线任务并存,最大化的利用集群的物理资源,同时不干扰在线应用对于延迟的要求。

以阿里云的实践来看,目前通过一种超迈的机制来实现在线领取,在阿里集团例子是电商集群,作为电商平台,更多的用户购买是发生在白天期间,到了午间,夜间以后,尤其是凌晨这个时间段,是没有购买行为的,在这个时间段内,整个电商集群的资源利用率非常低,大多数CPU和内存处于休眠状态,那能否将一些其他业务如阿里妈妈,对于用户的点击行为等这些数据的分析,实际上是离线批处理的过程,能否将这些离线批处理的任务在电商集群夜间这一段时间能利用起来。

基本思想就是超迈,即电商集群处于休息的状态情况下,能够在很多在线的进程机器上,往上面调度一些离线的计算,能够将剩余的CPU和内存的计算能力能够利用起来。

这也是未来的趋势,包括在业界,雅虎或者其他云计算的平台,包括亚马逊也在探讨这些话题,如何将闲置的物理资源充分的利用起来,将在线和离线的任务能够统一在一个物理集群中。

二、实时计算

随着大数据的普及,更多的公司会想到如何利用大数据做一些实时的分析,如做商业智能BI的分析。

一个 dba 希望利用大数据能很快的完成一个 SQL 语句的执行,能够在秒级别能看到最后语句执行的结果,这对大规模的分布式系统也提出了要求,就是如何做到实时的计算,如业界一些较优秀的系统,如 STORM 的计算,Spark 系统,都是向着实施计算,如何能最快的完成用户的计算任务的角度去设计和开发的。

以及 flink 等,也是在如何最快的将用户的计算结果拿到同时不造成资源浪费这两个维度综合考虑,提出了些新的计算框架。

主要面临的问题是要追求性能,必然是要减少 mapper 和 reduce 这些进程的拉起和停止是有一定的系统开销,缩小这些系统的开销的同时是当拉进程,如果没有接到任务时,会不会造成资源浪费。这也是未来实时计算发展的框架,要考虑的两个维度,既要做到很快的完成计算,减小系统拉起和停止进程的开销,同时又希望能够做到最大化的利用集群的物理资源。

在这个方面,阿里云的飞天系统开发了一套实时计算框架称为 OnlineJob,它本质上是在线的服务,通过预起一组 Worker 进程作为常驻进程在集群中运行,等待用户从前端发来的计算任务,会立即跑一个语句,通过逻辑 plan 翻译到物理 plan,将这个物理的执行计划很快的发送到已经起来的 Worker 进程上瞬间完成计算。

目前通过测试结果,对于一个在t级别的计算任务可以在s级拿到计算结果。但是将一堆进程预先进行拉起,如果潜在的业务量不大的情况下,这个进程实际上是在消耗物理资源,并没有在做计算,存在一定资源浪费。

所以一个技术能够做到弹性的,动态的增加或减少这个预起的 Worker 进程,通过集群管理员的配置,通过发现这个集群白天的使用量和晚上的使用量的配置,框架知道什么时候该缩减 Worker 的数量,什么时候应该增加 Worker 的数量,做到弹性调节的过程,从而在业务不繁忙时,能够释放集群的资源,而在集群业务量上来时,能够要到资源,并且拉起一组常驻进程来瞬间响应,从而很快的完成用户的计算。


三、更大规模

1.时间维度

随着业务量的增多,更多的业务需要共享集群,原因是不同业务之间对于集群硬件的使用,在时间维度上是不一样的。

如阿里妈妈是一个批处理类型,更多的计算任务量发生在夜间,而电商网站更多的依赖于用户浏览,更多的业务量发生在白天,所以不同的业务或公司,他们业务的特点不一样,决定了对于集群的使用情况,在时间维度上不一样。

2.资源维度

对于有些计算,是内存型,需要大量的生存内存,但没有太多的计算量,而有些业务则是内存需求不多,但对于 CPU 的需求高,当运行时,CPU 负载非常高,所以不同业务在对于资源的维度使用上也存在一定的差异性。所以将这些业务放在一个集群上,最大化程度的利用整个物理资源的计算能力。

由于这方面的原因,更多的需求是能否将更多的业务放在同一集群上,因为如果在物理上隔开,互相补充的效果无法实现。所以更大的规模如何支撑、如何做到资源的调度、更快的资源调度、更大规模的任务调度,这是摆在大数据系统、分布式系统、云计算未来考虑的更长远的课题即支撑起更大规模的集群,更多并发量的任务

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2天前
|
人工智能 边缘计算 Cloud Native
你认为云计算将朝着哪个方向进化?
你认为云计算将朝着哪个方向进化?
11 1
|
6月前
|
机器学习/深度学习 边缘计算 分布式计算
云计算应用方向研究
云计算应用方向研究
194 0
|
6月前
|
人工智能 前端开发 vr&ar
探索前端技术的未来发展方向
【2月更文挑战第4天】在当前数字化时代,前端技术的快速发展为互联网应用的用户界面提供了更多可能性。本文将探讨前端技术的未来发展方向,包括移动端开发、增强现实和虚拟现实应用、人工智能与前端的结合等,并分析这些趋势对前端工程师的影响。
|
存储 缓存 Linux
C/C++发展方向(强烈推荐!!)(上)
C/C++发展方向(强烈推荐!!)
|
Web App开发 数据库 C++
C/C++发展方向(强烈推荐!!)(下)
C/C++发展方向(强烈推荐!!)
|
人工智能 Cloud Native Go
面向未来的服务网格发展:展望服务网格技术未来的发展方向和趋势
面向未来的服务网格发展:展望服务网格技术未来的发展方向和趋势
115 0
|
前端开发 网络安全
未来方向发展–极区
未来方向发展–极区
77 1
|
机器学习/深度学习 人工智能 自然语言处理
最新的前端趋势和发展方向
最新的前端趋势和发展方向
206 0
|
机器学习/深度学习 自然语言处理 算法
AIGC的演进方向
AIGC的演进方向
215 1
|
Web App开发 移动开发 缓存
说说前端未来几年的发展方向
说说前端未来几年的发展方向
235 0
说说前端未来几年的发展方向