Skip to content

tangtang2013/FastDCS

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastDCS是一个使用C++开发的开源分布式计算系统,使用它可以快速的解决海量数据的并行计算问题。 

FastDCS的设计宗旨是用最快捷的方式完成分布式计算系统的开发和部署工作,如同它的名称Fast Distributed Computing System。

FastDCS通过简洁而有效的设计,为开发者提供一套简洁而有效的分布式计算框架,开发者只需要定制由FastDCS提供的三个用户自定义UDF函数(User defined function),就可以完成整个分布式系统的开发工作,FastDCS同样也是非常容易进行部署的,开发者可以轻松的将FastDCS系统部署在很多台Linux服务器中的,FastDCS会自动将这些Linux服务器建立起服务集群,以分布式运行的方式完成开发者的计算任务。

## 系统组成结构 ##
从系统组成划分的角度来看,FastDCS包括了管理节点(Master)和工作节点(Worker)
- 管理节点Master对整个计算集群的服务状态、任务分发、计算调度等服务进行管理。
- 工作节点Worker作为计算单元接受Master服务器的管理,完成整个计算集群的计算任务。

## 系统运行方式 ##
- 管理节点Master在多台服务器中以主从模式运行
  - 至少需要提供一台Master节点,建议同时运行三台Master节点会达到最佳的可靠性和性能。
  - 多台Master节点会自动选举出主节点(Primary master)和从节点(Secondary master)。
  - 每台Master节点分别管理一部分Worker节点,达到了系统的负载均衡的同时也提升了系统的整体性能。
- 工作节点Worker在多台服务器中以并行模式运行
  - 至少需要提供一台Worker节点,目前可以支持上百台的Woker节点进行并行工作。
  - Worker节点会主动寻找负载较小的Master节点,接受计算任务调度,进行计算任务运算。

## 计算任务调度方式 ##
- Primary Master节点管理了服务集群中的所有计算任务
- Primary Master节点将一部分计算任务副本分发给Secondary master节点进行管理,当一段时间内该任务未完成计算,Primary Master节点将会注销这个任务副本,并将这个副本重新分发给其他的Secondary master节点。
- Primary Master和Secondary master节点都会分别处理各自管辖的Worker节点的服务请求,将计算任务进行下发,当一段时间内该任务未完成计算,Master[注1]节点将会注销这个任务副本,并将这个副本重新分发给其他的Woker节点。
- 当服务集群中空闲时,Primary Master节点将会通过调用开发者自定义ImportTaskUDF函数,将新的计算任务导入到计算集群中等待处理。
- 当Worker节点接收到Master节点分发的计算任务时,将会通过调用开发者自定义ComputingUDF函数,完成计算任务的运算处理。
- 当服务集群中的计算任务计算完成后,Primary Master节点将会通过调用开发者自定义ExportTaskUDF函数,将计算结果导出到外部存储系统中。

[注1]:此处的Master节点是指Primary Master或Secondary master节点。

## 系统容错处理 ##
- 当Primary master节点发生异常停止服务时,Secondary master节点会重新选举出新的Primary master节点接替工作,避免了服务集群的单点故障的问题,当故障服务器恢复后可以重新参加到集群的工作中。
- Worker节点可以根据环境的需要进行动态的增减,服务集群的计算能力和计算周期也随之发生线性的变化。
- 在Master和Worker节点发生动态调整的时候,只会影响极小部分的计算任务,不会影响服务集群的正常运行,受影响的小部分计算结果也会由系统判断是否采纳或重新进行计算。
- 当发生网络延时或Worker节点异常造成计算任务超时的情况下,Master节点会将计算任务重新分发给其他Worker节点,即使多台Worker节点运算同一个任务时,Master也只会采纳其中有效的计算结果。

## 发行日志 ##
- 2013/06/06,整理提交了V0.1.1代码和相关技术文档。

## 授权说明 ##
FastDCS源代码通过GNU General Public License V3进行发布。


Copyright (C) 2013, Liu Xun. <my#liuxun.org>

About

FastDCS is a distributed computing system.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published