打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
高容错分布式计算系统是什么样的

  高容错分布式计算系统,就是要让系统高可用。您的问题可以理解为如何设计高可用的分布式计算系统。

  高可用的分布式计算系统的设计通常需要做到:冗余,故障自动转移,状态同步,资源调度,系统自检,故障恢复,伸缩方便等。。。

  我们可以参考当下比较流行的分布式计算框架,看看别人如何设计的。例如:MapReduce,Spark,Storm等。

  MapReduce:分布式离线计算框架。在运行的时候根据文件块自动分配计算节点,和线程,在运行的过程中如果某个节点失败,则会尝试在别的节点去执行。

  适合数据复杂度运算 不适合算法复杂度的运算 不适合实时计算、流式计算、DAG有向图计算 综上,要求算法足够简单,数据可以足够大!

  MapReduce包含四个组成部分 Client, JobTracker, TaskTracker ,Task。

  

  hadoop-MapReduce模型实现图

  Map流程:

  1,Inputformat:首先将 HDFS 中的数据以 Split 方式作为 MapReduce 的输入。Mapper:每个Mapper 将输入(key,value)数据解析成输出(key,value)。

  2,Partition:根据key或value及reduce的数量来决定当前的这对输出数据最终应该交由哪个reduce task处理( Partitioner接口,默认自动完成,可定制)。

  3,Combine:缓存溢写时完成,如果有很多个相同key/value对需要发送到某个reduce端去,那么需要将这些key/value值拼接到一块,减少与partition相关的索引记录(reducer接口,默认自动完成,可定制) 。

  4,Merge:溢写文件合并,同时再次执行Combiner(默认自动完成)。

  Map 流程

  Reduce流程

  1,Copy:简单地拉取数据 Merge:同map

  2,Merge,文件合并

  3,Reducer:每个Reducer将输入(key,value)数据解析成输出(key,value) 把结果放到HDFS上

  Reduce流程

  spark:分布式在线批量计算框架。可以实时执行批量计算命令。依赖内存资源。将RDD存放于内存,方面后续计算能够持续复用。

  spark工作示意图

  Storm是实时流式计算框架。主要是无法忍受MapReduce的高延迟。Storm的核心组件有Nimbus、Supervisor、Worker、Task、Topology、Stream、Spout、Bolt、Stream grouping、Reliability。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MapReduce理解
MapReduce过程详解及其性能优化
【概念】详解MapReduce原理
MapReduce:详解Shuffle过程
并行编程及MapReduce简介
MapReduce 框架原理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服