04 | 移动计算比移动数据更划算

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 大数据技术和传统的软件开发技术在架构思路上有很大不同,大数据技术更为关注数据,所以相关的架构设计也围绕数据展开,如何存储、计算、传输大规模的数据是要考虑的核心要素。

大数据技术和传统的软件开发技术在架构思路上有很大不同,大数据技术更为关注数据,所以相关的架构设计也围绕数据展开,如何存储、计算、传输大规模的数据是要考虑的核心要素。


传统的软件计算处理模型,都是“输入 -> 计算 -> 输出”模型。也就是说,一个程序给它传入一些数据也好,它自己从某个地方读取一些数据也好,总是先有一些输入数据,然后对这些数据进行计算处理,最后得到输出结果。


但是在互联网大数据时代,需要计算处理的数据量急速膨胀。一来是因为互联网用户数远远超过传统企业的用户,相应产生了更大量的数据;二来很多以往被忽视的数据重新被发掘利用,比如用户在一个页面的停留时长、鼠标在屏幕移动的轨迹都会被记录下来进行分析。在稍微大一点的互联网企业,需要计算处理的数据量常常以 PB 计(1PB=1024TB)。


正因为如此,传统的计算处理模型不能适用于大数据时代的计算要求。你能想象一个程序读取 PB 级的数据进行计算是怎样一个场景吗?一个程序所能调度的网络带宽(通常数百MB)、内存容量(通常几十 GB )、磁盘大小(通常数 TB)、CPU 运算速度是不可能满足这种计算要求的。

那么如何解决PB级数据进行计算的问题呢?


这个问题的解决思路其实跟大型网站的分布式架构思路是一样的,采用分布式集群的解决方案,用数千台甚至上万台计算机构建一个大数据计算处理集群,利用更多的网络带宽、内存空间、磁盘容量、CPU 核心数去进行计算处理。但是大数据计算处理的场景跟网站的实时请求处理场景又有很大不同。


网站实时处理通常针对单个用户的请求操作,虽然大型网站面临大量的高并发请求,比如天猫的“双十一”活动。但是每个用户之间的请求是独立的,只要网站的分布式系统能将不同用户的不同业务请求分配到不同的服务器上,只要这些分布式的服务器之间耦合关系足够小,就可以通过添加更多的服务器去处理更多的用户请求及由此产生的用户数据。这也正是网站系统架构的核心原理。


我们再回过头来看大数据。大数据计算处理通常针对的是网站的存量数据,也就是刚才我提到的全部用户在一段时间内请求产生的数据,这些数据之间是有大量关联的,比如购买同一个商品用户之间的关系,这是使用协同过滤进行商品推荐;比如同一件商品的历史销量走势,这是对历史数据进行统计分析。网站大数据系统要做的就是将这些统计规律和关联关系计算出来,并由此进一步改善网站的用户体验和运营决策。


为了解决这种计算场景的问题,技术专家们设计了一套相应的技术架构方案。最早的时候由

Google 实现并通过论文的方式发表出来,随后根据这些论文,开源社区开发出对应的开源产品,并得到业界的普遍支持和应用。


这套方案的核心思路是,既然数据是庞大的,而程序要比数据小得多,将数据输入给程序是不划算的,那么就反其道而行之,将程序分发到数据所在的地方进行计算,也就是所谓的移动计算比移动数据更划算。


有一句古老的谚语,说的是“当一匹马拉不动车的时候,用两匹马拉”。听起来是如此简单的道理,但是在计算机这个最年轻的科技领域,在很长一段时间里却并没有这样做。当一台计算机的处理能力不能满足计算要求的时候,我们并没有想办法用两台计算机去处理,而是换更强大的计算机。


商业级的服务器不够用,就升级小型机;小型机不够用,就升级中型机;还不够,升级大型机,升级超级计算机。


在互联网时代之前,这种不断升级计算机硬件的办法还是行得通的,凭借摩尔定律,计算机硬件的处理能力每 18 个月增强一倍,越来越强大的计算机被制造出来。传统企业虽然对计算机的处理需求越来越高,但是工程师和科学家总能制造出满足需求的计算机。但是这种思路并不适合互联网的技术要求。Google、Facebook、阿里巴巴这些网站每天需要处理数十亿次的用户请求、产生上百 PB 的数据,不可能有一台计算机能够支撑起这么大的计算需求。


于是互联网公司不得不换一种思路解决问题,当一台计算机的计算能力不能满足需求的时候,就增加一台计算机,还不够的话,就再增加一台。就这样,由一台计算机起家的小网站,逐渐成长为百万台服务器的巨无霸。Google、Facebook、阿里巴巴这些公司的成长过程都是如此。


但是买一台新计算机和一台老计算机放在一起,就能自己开始工作了吗?两台计算机要想合作构成一个系统,必须要在技术上重新架构。这就是现在互联网企业广泛使用的负载均衡、分布式缓存、分布式数据库、分布式服务等种种分布式系统。当这些分布式技术满足互联网的日常业务需求时,对离线数据和存量数据的处理就被提了出来,当时这些分布式技术并不能满足要求,于是大数据技术就出现了。

移动计算程序到数据所在位置进行计算是如何实现的呢?


1. 将待处理的大规模数据存储在服务器集群的所有服务器上,主要使用 HDFS 分布式文件存储系统,将文件分成很多块(Block),以块为单位存储在集群的服务器上。

2. 大数据引擎根据集群里不同服务器的计算能力,在每台服务器上启动若干分布式任务执行进程,这些进程会等待给它们分配执行任务。

3. 使用大数据计算框架支持的编程模型进行编程,比如 Hadoop 的 MapReduce 编程模型,或者 Spark 的 RDD 编程模型。应用程序编写好以后,将其打包,MapReduce 和Spark 都是在 JVM 环境中运行,所以打包出来的是一个 Java 的 JAR 包。

4. 用 Hadoop 或者 Spark 的启动命令执行这个应用程序的 JAR 包,首先执行引擎会解析程序要处理的数据输入路径,根据输入数据量的大小,将数据分成若干片(Split),每一个数据片都分配给一个任务执行进程去处理。

5. 任务执行进程收到分配的任务后,检查自己是否有任务对应的程序包,如果没有就去下载程序包,下载以后通过反射的方式加载程序。走到这里,最重要的一步,也就是移动计算就完成了。

6. 加载程序后,任务执行进程根据分配的数据片的文件地址和数据在文件内的偏移量读取数据,并把数据输入给应用程序相应的方法去执行,从而实现在分布式服务器集群中移动计算程序,对大规模数据进行并行处理的计算目标。

小结


移动程序到数据所在的地方去执行,这种技术方案其实我们并不陌生。从事 Java 开发的同学可能有过用反射的方式热加载代码执行的经验,如果这个代码是从网络其他地方传输过来的,那就是在移动计算。杀毒软件从服务器更新病毒库,然后在 Windows 内查杀病毒,也是一种移动计算(病毒库)比移动数据(Windows 可能感染病毒的程序)更划算的例子。


大数据技术将移动计算这一编程技巧上升到编程模型的高度,并开发了相应的编程框架,使得开发人员只需要关注大数据的算法实现,而不必关注如何将这个算法在分布式的环境中执行,这极大地简化了大数据的开发难度,并统一了大数据的开发方式,从而使大数据从原来的高高在上,变成了今天的人人参与。


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
7月前
|
弹性计算 NoSQL 关系型数据库
2024年将是最艰难的一年?不怕,阿里云带头降价,与百万客户共享技术红利!
2024年将是最艰难的一年?不怕,阿里云带头降价,与百万客户共享技术红利!
|
机器学习/深度学习 存储 人工智能
|
存储 机器学习/深度学习 人工智能
每秒5百亿亿次!Meta祭出元宇宙巨兽,联手英伟达打造全球最强超算
每秒5百亿亿次!Meta祭出元宇宙巨兽,联手英伟达打造全球最强超算
100 0
|
供应链 双11 iOS开发
重构“人货场”逻辑,聚划算将在流量战场掀起一阵“聚风”!
直播俨然成为了名人的流量测试机。 成功者,例如聚划算优选官刘涛,通过618的多场直播完成了自身商业价值与聚划算平台的双赢。 翻车者,则可能陷入争议。8月22日晚,郑爽在其直播带货首秀上,因带货成绩不理想而中止直播,场面一度十分尴尬。随后,“郑爽直播坑位费”、“郑爽回应直播争议”先后上了微博热搜头条。 虽然话题度十足,但数十万的坑位费对商家而言则是一笔巨额损失。 直播带货只是全域流量模式创新的一个缩影,无论是当下热议的私域流量还是纵横多年的公域流量,如何实实在在转化成交易,提高运营效率才是每个商家最重视的话题,也是每个平台最需要解答的关键问题。
234 0
重构“人货场”逻辑,聚划算将在流量战场掀起一阵“聚风”!
|
数据中心 云计算
云计算缘何会促进硬件销量增长?
 本文讲的是云计算缘何会促进硬件销量增长?【IT168 专稿】到2014年,数据中心用在运行私有云环境的服务器硬件上的开支将翻一番,移动应用也会促进服务器方面的投入。
1538 0
在线软件服务逼近井喷 风投资本涌入Saas
本文讲的是在线软件服务逼近井喷 风投资本涌入Saas,与其说中国总是在抄袭美国的模式,不如说太平洋东西彼岸的事物总在发生某种共鸣。门户的诞生、搜索的崛起、Web2.0的浪潮……而在软件行业,互联网化和服务化已是大势所趋。
3035 0