什么是分布式计算?什么是分布式计算分布式计算是一门计算机科学,主要研究分布式系统。一个分布式系统包括若干通过网络互联的计算机。这些计算机互相配合以完成一个共同的目标(我们将这个共同的目标称为“项目”)
什么是分布式计算?
什么是分布式计算
分布式计算是一门计算机科学,主要研究分布式系统。一个分布式系统包括若干通过网络互联的计算机(繁:機)。这些计算机互皇冠体育相配合以完成一个共同的目标(我们将这个共同的目标称为“项目”)。
具【读:jù】体的过程是:
将需要进行大量计算的项目数据分割成小块,由多台计算机分别计算,再上传运(繁体:運)算结果后统一合并得出数据结论。在分布式系统上运行的计算机(繁:機)程序称为分布式计算程序;分布式编程就是编写上述程序的过程。
分布式计算的工作方式
项目方把大的计算任务分割成小块(任务单元),通过互联网分发给志愿者进行计算,志愿者计算完成后再通过网络把各自的计算结果返回到项目方的服务器。分布式计算架构由许多客户端组成具有非常轻(繁:輕)量级《繁体:級》软件代理的计算机,安装有一个或多个专用分布式计算管理服在客户端计算机上运行的代理程序通常会检测计算机何时处于空闲状态,并向管理服务器发送通知,指出计算机未在使(读:shǐ)用且可用于处理作业。
然后代理请求应用程序包。当客户端计算机(繁:機)从管理服务器接收此应用程序包进行处理时,它会在具有空闲 CPU c 时运行应用程序软件 ycles 并将结果发送回管理服务器。当用户(繁体:戶)返回并再次需要资源时,管理服务器返回用于在用户不在时执行不同任务的资源。
其中,管理程序负责系统管理和配置、作业管理;并行组件库是基于消息的通信工具;本地操作系统{繁:統}为标极速赛车/北京赛车准的通用 OS;并行应用程序就是并行执行的应用程序。计算机集群系统之间是同构的。主要采用集群计算。
分布式计算在日常生活中的使用
(1) 从(读:cóng)一个新闻门户网站案例引入
现在很多同学经常会看到一【pinyin:yī】些名词,比如分布式服务框架,分布式系统,分布式存储系统,分布式【练:shì】消息系统。
但是有些经验尚(练:shàng)浅的同学,可能都很容易被这些名词给搞晕。所以这篇文章就对“分布式计算系统”这个概念做(读:zuò)一个科普类的分析。
如果你要理解啥是分布式计算,就必须先得理解啥(shá)是分布式存储,现[繁:現]在我们从一个小例子来引入。
比bǐ 如说现在你有一个网站,咱们假设是一个新[pinyin:xīn]闻门户网站好了(繁体:瞭)。每天是不是会有可能上千万用户会涌入进来看你的新闻?
好的,那么他们会怎么{pinyin:me}看新闻呢?
其实很【练:hěn】简单,首先他们会(huì)点击一些板块(繁:塊),比如“体育板块”,“娱乐板块”。
然后,点击一些【读:xiē】新闻标题,比bǐ 如“20年来最刺激的一场比赛即将拉开帷幕”,接着还可能会发表一些评论,或者点击对某个好的新闻进行收藏。
那娱乐城么你的这些用户干的这些事儿{练:ér}有一个专业的名词,叫做“用户行为”。
因为在你的网【繁体:網】站或者APP上,用户一定会进行各种操作,点击各种按钮《繁体:鈕》,发表一些信息,这些都是各种行为,统称为“用户行为”。
好了,现在假如说新闻【练:wén】门户网站的boss说想要做一个功能,在网站里每天做一个排【拼音:pái】行榜,统计出来每天【读:tiān】每个版块被点击的次数,包括最热门的一些新闻。
然后呢,在网站后台系统里需要有一些报表,要让他看到不同的编辑产出【练:chū】的文章的点击量{liàng}汇总,做一个编辑的绩效排名,还有很多类(繁:類)似的事情。
这些事(练:shì)情叫什么呢?你可以认为wèi 是基于用户行为数据进行分析和统计,产出各种[繁:種]各样的数据统计分析报表和结果,供网站的用户、管理人员来查看。
这也有一个专业的名词,叫做(pinyin:zuò)“用户行为分析”。
(2)推算一下你需要分析多少条数据?
好,咱么继续。如果你要对用户行[练:xíng]为进[繁体:進]行分析,那你是不是首先需要收集这些用户行为的数据?
比如说有个哥儿们现在点了[繁体:瞭]一下[练:xià]“体育”板块,你需要yào 在网页前端或者是APP上立马发送一条日志到后台,记录清楚“id为117的用户点击了一下id位003的板块”。
同样,这个东西也有一个专(繁:專)业的名词,叫做“用户行为日志”。
那你可以来[繁:來]计算一下,这些用户行为如果采用日志《繁体:誌》的方式收集,每天大概会产生(shēng)多少条数据?
假设每天1000万人访《繁:訪》问《繁:問》你的【拼音:de】新闻网站,平均每个人做出30个点击、评论以及收藏等行为,那么就是3亿条用户行为日志。
假设每条用户行为日志的大{读:dà}小是100个字节,因为可能包含了很多很多的字段,比如他是在网页点击的,还是在手机APP上点击的,手机APP是用的什么操作系统,android还是IOS,类似这样的字段是很多duō 的【练:de】。
那么你就有每{练:měi}天大概28GB左右的数据,这里一共包含3亿条。
假如对这3亿条数《繁:數》据,你就自己写个Java程序,从一个超大的28GB的大[练:dà]日志文件里,一条一条读取日志来统计分析和计算,一直到把3亿条数据都计算完毕,你觉得会花费多少时间?
不可想象,根据你的计算逻辑复杂度来说,搞不好要花费{pinyin:fèi}几十个小时的时间《繁体:間》。
所以(pinyin:yǐ)世界杯你觉得这种大数据场景下的分析,这么玩儿靠谱么?不靠谱。
(3)黄金搭档:分布式存储(繁体:儲) 分布式计算
所以这个时候,你就可以首先采用分布{练:bù}式存储的方式,把那3亿条数据分散《练:sàn》存{pinyin:cún}放在比如30台机器上,每台机器大概就放1000万条数据,大概就1GB的数据量。
大家看看下面(繁体:麪)的图:
接着你就可以上分布式计算了,你可以把统计分(拼音:fēn)析【pinyin:xī】数据的计算任务,拆分成30个计算任务,每个计算任务都分发到一台(繁体:颱)机器上去运行。
也就是说,就专门针对机器本地【pinyin:dì】的1GB数【练:shù】据,那1000万条数据进行分析{读:xī}和计算。
这样的好处就是可以依托30台机器的资源并行的进行数据的统计和分析,这也就是shì 所谓的分布(拼音:bù)式计算了。
每台机(读:jī)器的计算结果出来之后,就可以进(繁体:進)行综合性的汇总,然后就可以拿到最终的一个分{读:fēn}析结果,大家看下图。
假设之前你的3亿条数据都在一个30GB的大文件里,然[读:rán]后你一个Java程序一条一条(繁:條)慢慢读{练:dú}慢慢计算,需要耗费30小时。
那么现在把计算任务并行到了30台机jī 器上去[pinyin:qù],就可以提升30倍的计算速度,是不是就只{练:zhǐ}需要1小时就可以完成计算了?
所以这个就是所谓的分布式计算,他一般是针《繁体:針》对超大数据集,也{练:yě}就是现在很流行的大数{pinyin:shù}据进行计算的。
首先需要将超大数据集拆(读:chāi)分成很多数据块分散在多台机器上,然后把计算任务分发到各个机器上去,利用多台机器的CPU、内存等计算资源来进(繁:進)行计算。
这种分布式计算的方式,对于超大数据集的(读:de)计算可以提升{pinyin:shēng}几十倍甚至几百倍的效率,其实这个理论和概念,也是大数据技术的基础。
比如现在最流行的大数据技术栈里,Hadoop HDFS就是用做分布式存储的,他可以把一个超大文件拆分为很{读:hěn}多小的数据块放在很多{pinyin:duō}机器上。
而像Spark就是分布式计[繁体:計]算系统,他可以把计算任务分发澳门银河到各个机器上,对各个数据块进行并行计算。
相信大家看了之后,对分布式计算系统,应该有一个初chū 步的认识了。
本文链接:http://10.21taiyang.com/Health-Conditions/20930489.html
大数(拼音:shù)据分布式系统计算形式转载请注明出处来源