开源分布式计算框架(DC4C)更新至v1.5.5

2015年10月13日 08:00 222 次阅读 来源: 开源中国 作者: 路人甲
摘要 1 概述1.1 简介 DC4C是一个通用的分布式计算框架,研发初衷来自于2015年初我开发互联网数据挖掘平台的任务调度的技术需求。经过2015年4月一个月的研发,发布 第一版原型,而后不断优化完善,扩展功能,目前最新版本为v1.5.5。只依赖开源库fasterjson。 DC4C借鉴了Hadoop、Fourinone等分布式产品的设计,加入自有特色,充分考虑高可靠性、高伸缩性,也是业界...

1  概述


1.1  简介

        DC4C是一个通用的分布式计算框架,研发初衷来自于2015年初我开发互联网数据挖掘平台的任务调度的技术需求。经过2015年4月一个月的研发,发布 第一版原型,而后不断优化完善,扩展功能,目前最新版本为v1.5.5。只依赖开源库fasterjson。

        DC4C借鉴了Hadoop、Fourinone等分布式产品的设计,加入自有特色,充分考虑高可靠性、高伸缩性,也是业界首先实现有向无环图任务调度引擎的分布式计算框架之一,特别适合批量任务流处理的分布式架构。


        DC4C核心完全用C编写,手工代码约1万行。此外大量使用代码自动化生成技术(如json报文的打包解包),大幅减小了开发量、提高了开发效率、减轻了底层细节编码压力。用户API包和计算节点也可以用其它语言实现以支持不同语言开发的应用。

       目前已实施某银行批量处理平台上线稳定运行半年。


1.2 体系结构

        DC4C体系结构包含基础平台架构、用户API包和有向无环图(下面简称DAG)的任务调度引擎。


        基础平台架构包含三类节点:注册节点、计算节点和用户节点。

        注册节点(守护进程):负责接受计算节点注册、状态变更、注销;接受用户节点查询空闲计算节点;接受telnet连接在线查询和管理。进程框架为父子进程监控进程异常,可以同时起多对保持计算节点注册信息冗余,提高可靠性。

        计算节点(守护进程):负责向注册节点注册;接受用户节点分派任务并反馈执行结果;随时向注册节点报告状态。进程框架为父进程+子进程组(计算节点组)监控进程异常。

        用户节点(可以是守护进程、命令行进程或其它任何类型的用户自己控制的进程):用户程序调用用户API,向注册节点查询当前空闲的计算节点,分派任务给计算节点并监督执行。


        计算节点启动后向注册节点注册后保持长连接,并互相心跳。

        用户节点用户应用通过分派任务API向注册节点查询当前空闲的计算节点集合,然后发送执行命令行和执行程序MD5给计算节点,计算节点校验执行程序MD5,如果不匹配,联动请求用户节点分发新版程序,然后再执行命令。


        用户API包供用户节点和计算节点应用调用,实现用户节点的任务分派、计算节点应用控制等功能。


        有向无环图(DAG)任务调度引擎封装了基础平台架构提供的基本任务分派功能,实现了有向无环图数据结构的任务流的执行控制,便于用户直接搭建复杂任务依赖关系调度平台。


1.3 功能和优势

        * 对于应用开发人员,无需编写任何并发控制细节代码(如fork、wait)就可轻松实现本地或集群的并发管理,以及本地风格(wait子进程退出值status)的执行反馈。计算节点用户应用本身就是可执行程序,便于本地调试。

        * 对于系统运维人员,随时根据当前系统负载随时伸缩(扩大或减小)集群规模,而不影响系统的功能性,更无需应用开发人员参与。集群伸缩无需重启等影响当前正在处理的动作,没有配置文件,大大减少运维复杂度,实现高伸缩性。

        * 通过网络连接心跳、父子进程监控、数据冗余等实现高可用性。

        * 用户API包提供了单任务分派、批量任务分派、多批量任务分派等高层封装API,也提供了低层API供用户自己封装适应自己应用场景的任务分派器。用户API包也提供了同步、多路复用等分派模式,支持各种用户程序结构。

        * 实现了一个DAG任务调度引擎,是业界最早实现该数据结构任务调度引擎的分布式计算框架之一。

        * 用户应用程序自动检查应用版本和自动分发部署。

        * 支持telnet直接查询和管理集群状态。


        * 所有类型节点可自由部署在任意台机器内;支持最多8个注册节点和(理论上)6万个计算节点。

还可以输入136 讨论区:
评 论