问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

websphere 分布式计算和架构是怎么实现的

发布网友 发布时间:2022-04-27 04:52

我来回答

1个回答

热心网友 时间:2022-05-07 22:20

介绍
分布式计算简单来说,是把一个大计算任务拆分成多个小计算任务分布到若干台机器上去计算,然后再进行结果汇总。 目的在于分析计算海量的数据,从雷达监测的海量历史信号中分析异常信号(外星文明),淘宝双十一实时计算各地区的消费习惯等。
海量计算最开始的方案是提高单机计算性能,如大型机,后来由于数据的爆发式增长、单机性能却跟不上,才有分布式计算这种妥协方案。 因为计算一旦拆分,问题会变得非常复杂,像一致性、数据完整、通信、容灾、任务调度等问题也都来了。
举个例子,产品要求从数据库中100G的用户购买数据,分析出各地域的消费习惯金额等。 如果没什么时间要求,程序员小明就写个对应的业务处理服务程序,部署到服务器上,让它慢慢跑就是了,小明预计10个小时能处理完。 后面产品嫌太慢,让小明想办法加快到3个小时。
平常开发中类似的需求也很多,总结出来就是,数据量大、单机计算慢。 如果上Hadoop、storm之类成本较高、而且有点大才小用。 当然让老板买更好的服务器配置也是一种办法。
利用分片算法
小明作为一个有追求有理想的程序员,决定用介于单机计算和成熟计算框架的过度解决方案,这样成本和需求都能满足了。 分布式计算的核心在于计算任务拆分,如果数据能以水平拆分的方式,分布到5台机器上,每台机器只计算自身的1/5数据,这样即能在3小时内完成产品需求了。
如上所述,小明需要把这些数据按照一定维度进行划分。 按需求来看以用户ID划分最好,由于用户之间没有状态上的关联,所以也不需要事务性及二次迭代计算。 小明用简单的hash取模对id进行划分。
f(memberid) % 5 = ServerN

这样程序可以分别部署到5台机器上,然后程序按照配置只取对应余数的用户id,计算出结果并入库。 这种方式多机之间毫无关联,不需要进行通信,可以避免很多问题。 机器上的程序本身也不具备分布式的特性,它和单机一样,只计算自身获取到的数据即可,所以如果某台机器上程序崩溃的话,处理方式和单机一样,比如记录下处理进度,下次从当前进度继续进行后续计算。
利用消息队列
使用分片方式相对比较简单,但有如下不足之处。
它不具有负载均衡的能力,如果某台机器配置稍好点,它可能最先计算完,然后空闲等待着。也有可能是某些用户行为数据比较少,导致计算比较快完成。
还有一个弊端就是每台机器上需要手动更改对应的配置, 这样的话多台机器上的程序不是完全一样的,这样可以用远程配置动态修改的办法来解决。
小明这种方式引入了个第三方,消息队列。 小明先用一个单独的程序把用户信息推送到消息队列里去,然后各台机器分别取消费这个队列。 于是就有了3个角色:
推送消息的,简称Master。
消息队列,这里以Rabbitmq为例。
各个处理程序,简称Worker或Slave都行。
虽然仅仅引入了个第三方,但它已经具备了分布式计算的很多特性。
计算任务分发。 Master把需要计算的用户数据,不断的推送消息队列。
程序一致性。 Worker订阅相同的消息队列即可,无需更改程序代码。
任意扩容。 由于程序完全一样,意味着如果想要加快速度,重复部署一份程序到新机器即可。 当然这是理论上的,实际当中会受限于消息队列、数据库存储等。
容灾性。 如果5台中某一台程序挂了也不影响,利用Rabbitmq的消息确认机制,机器崩溃时正在计算的那一条数据会在超时,在其他节点上进行消费处理。
Hadoop简介
Hadoop介绍已经相当多了,这里简述下比如:”Hadoop是一套海量数据计算存储的基础平台架构”,分析下这句话。
其中计算指的是MapRece,这是做分布式计算用的。
存储指的是HDFS,基于此上层的有HBase、Hive,用来做数据存储用的。
平台,指可以给多个用户使用,比如小明有一计算需求,他只需要按照对应的接口编写业务逻辑即可,然后把程序以包的形式发布到平台上,平台进行分配调度计算等。 而上面小明的分布式计算设计只能给自己使用,如果另外有小华要使用就需要重新写一份,然后单独部署,申请机器等。Hadoop最大的优势之一就在于提供了一套这样的完整解决方案。
下面找了介绍Hadoop的概览图,跟小明的设计做对比下:
图中“大数据计算任务” 对应小明的100G用户数据的计算任务。
”任务划分“ 对应Master和消息队列。
“子任务” 对应Worker的业务逻辑。
”结果合并“ 对应把每个worker的计算结果入库。
“计算结果” 对应入库的用户消费习惯数据。

PS:为了方便描述,把小明设计的分布式计算,叫做小和尚。
MapRece
由于MapRece计算输入和输出都是基于HDFS文件,所以大多数公司的做法是把mysql或sqlserver的数据导入到HDFS,计算完后再导出到常规的数据库中,这是MapRece不够灵活的地方之一。 MapRece优势在于提供了比较简单的分布式计算编程模型,使开发此类程序变得非常简单,像之前的MPI编程就相当复杂。
狭隘的来讲,MapRece是把计算任务给规范化了,它可以等同于小和尚中Worker的业务逻辑部分。 MapRece把业务逻辑给拆分成2个大部分,Map和Rece,可以先在Map部分把任务计算一半后,扔给Rece部分继续后面的计算。 当然在Map部分把计算任务全做完也是可以的。 关于Maprece实现细节部分不多解释,有兴趣的同学可以查相关资料或看下楼主之前的C#模拟实现的博客【探索C#之微型MapRece】。
如果把小明产品经理的需求放到Hadoop来做,其处理流程大致如下:
把100G数据导入到HDFS
按照Maprece的接口编写处理逻辑,分Map、Rece两部分。
把程序包提交到Maprece平台上,存储在HDFS里。
平台中有个叫Jobtracker进程的角色进行分发任务。 这个类似小和尚的Master负载调度管理。
如果有5台机器进行计算的话,就会提前运行5个叫TaskTracker的slave进程。 这类似小和尚worker的分离版,平台把程序和业务逻辑进行分离了, 简单来说就是在机器上运行个独立进程,它能动态加载、执行jar或dll的业务逻辑代码。
Jobtracker把任务分发到TaskTracker后,TaskTracker把开始动态加载jar包,创建个独立进程执行Map部分,然后把结果写入到HDFS上。
如果有Rece部分,TaskTracker会创建个独立进程把Map输出的HDFS文件,通过RPC方式远程拉取到本地,拉取成功后,Rece开始计算后续任务。
Rece再把结果写入到HDFS中
从HDFS中把结果导出。
这样一看好像是把简单的计算任务给复杂化了,其实如果只有几台计算任务的话,使用Maprece确实是杀鸡用牛刀了。 如果有TB、PB级别的数据、跑在成百上千台计算节点上,Maprece的优势才会体现出来。 其计算框架图架构如下:

离线计算
通常称Maprece及小和尚这种计算为离线计算,因为它对已经持久化的文件数据进行计算,不能实时响应。 还有个原因就是它的处理速度比较慢,它的输入和输出源都是基于HDFS设计,如果数据不是一开始就写入到HDFS上,就会涉及到数据导入导出,这部分相对耗费时间。 而且它的数据流动是基于文件系统的,Map部分输出的数据不是直接传送到Rece部分,而是先写入HDFS再进行传送。
处理速度慢也是Maprece的不足之处,促使了后面实时计算的诞生。
另外个缺点是Maprece的计算任务流比较单一,它只有Map、Rece两部分。 简单的可以只写一部分逻辑来解决,如果想拆分成多个部分,如逻辑A、逻辑B、逻辑C等, 而且一部分计算逻辑依赖上一次计算结果的话,MapRece处理起来就比较困难了。 像storm框架解决此类问题的方案,也称为流式计算,下一章继续补充。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
现在厨师一个月工资是多少,炒菜和配菜,在什 成都厨房工资多少钱一个月 现在厨师一个月工资是多少,炒菜和配菜,在什么地方的价格,请详细点,谢 ... 华硕电脑上没有触摸板设置华硕笔记本电脑触摸板怎么开启 新买的光碟DVD-R是空白的,我想把他制作成一个系统光碟,谁知道怎么制 ... 请问空白光盘刻录车载DVD后,播放时只有目录放不出来是怎么回事啊?_百 ... 请问将一张DVD-R空白光盘作为数据盘使用能够重复写入或者续写数据吗?谢 ... 我现在有DVD-R盘,怎样刻录?一定需要刻录机吗? 做辣椒酱为什么要放酒 做辣椒酱为啥要放酒 2024年区块链的趋势和方向 如何实现分布式计算 看了复仇者联盟,你觉得应该如何理解灭霸这个角色? 如何在Windows上搭建CFX分布式并行计算平台 如何评价《复仇者联盟3》中灭霸 如何搭建分布式计算 《复联4》只有一瓶皮姆粒子,灭霸是如何把所有手下都带过来的?_百度知 ... 《复仇者联盟3》中的灭霸的实力如何? 你感觉“灭霸”是个怎么样的形象? 灭霸在漫画中实力到底如何? 世界boss灭霸怎么打,其他都刷齐了,灭霸 如何评价复仇者联盟里灭霸这个人物? 灭霸的拼音怎么写呀 怎么看待《复仇者联盟》里的灭霸? 在漫威世界中,灭霸到底是一个怎样的存在? 你如何评价灭霸这个角色 漫画里灭霸怎么死的 灭霸是怎么被打败的?求漫画剧情? 如何制作家常鱼干? 天津银行收款码和微信转账收款有什么区别? 农业银行可以办理微信收款码吗 如何实现分布式计算?家里有三台电脑!本人小白,求简单的方法。或者直接软件。 分布式图计算框架有哪些? 2020年双十一淘宝活动什么时候开始 2020年双十一如何在抢购到联想r7000p这款电脑?有哪些途径,时间范围是多少? 为什么今年的双十一预售这么早? 天猫双11开启预售,服务器崩溃了,淘宝官方对此是如何回应的? 狐尾藻发黄发黑 虾塘狐尾藻太多怎么清除? 淘宝双11开启预售导致系统崩溃,为什么今年的双11预售开始的这么早? 这个水草是什么品种啊,经常有烂叶,叶还爱发黄,两天就得拿出来摘一摘... 狐尾藻该怎么种植? 请问这草是水草的一种吗?可以放进鱼缸里吗? 水田中的狐尾藻除人工打捞,还有那些方法可以除掉,用那种除草剂最快,急... 小米怎么检查电池健康度 狐尾藻会被淹死吗 这是啥 水培植物? 狐尾藻能养黄鳝吗 在池箱里养黄鳝种植狐尾藻,不放泥土,黄鳝能养成... 这种水草叫什么? 大闸蟹吃狐尾藻吗? 请问这是什么水草,能放在鱼缸里吗,好活吗?