1概述
本文是描述的是关于“分布式计算框架”(英文全称Distribute Compute Framework,简称DCF)的设计相关内容。为方便起见,以下将系统名称简称为DCF。
DCF内部采用C++语言实现了类MapReduce原理的一套分布式计算机制,力求为用户提供一套高效、稳定、可扩容的分布式计算框架。让用户在有分布式计算需求时,只需要实现计算相关的代码,很大程度提高用户的开发效率。
将来的版本,系统还将提供统一输入界面,能让用户输入类似SQL的语句来对已存储的数据进行分析,无需用户再另外实现计算的代码。
2系统总体结构
2.1应用架构
DCF包括2个master,若干个woker。若要整个框架能进行分布式计算还需要一个分布式存储系统(简称DFS),和一个用来发起计算的客户端。master和worker是独立的进程,可以部署在同一台机器或者不同的机器上,但原则上两个master需要部署在不同的机器上。
主master负责验证client是否合法,以及为client分配计算资源;
从master作为主master的备份,不断与主master通过同步消息保持同步,在主master无法服务时,可立即替代主master提供服务。
Worker是计算的主体,也可以称作计算资源,为客户提供CPU和内存等计算资源,执行客户预定义的计算。
应用/Client是分布式计算任务的发起者,并以动态库形式提供计算方法在worker上进行计算。
DFS是分布式文件系统的简称,它为本框架提供存储支持。
2.2系统逻辑结构
2.2.1功能模块简介
DCF共划分了7大功能模块,其中核心模块为:master、worker、client、dfsclient,辅助模块为common、message、test。下面将分别介绍各模块的功能特性。
1) master: