/AntDen

AntDen 是一个开源的通用计算框架

Primary LanguagePerl

                     AntDen 说明

===================================简介=====================================

AntDen: 一个开源的通用计算框架

AntDen包括如下四部分:

I. 调度器(scheduler)
II. 控制器(controller)
III. 客户端(slave)
IV. 执行器(executer)

===================================安装=====================================

1. 确定已经安装了MYDan工具, 项目地址 https://github.com/MYDan/mayi.git,
(注:查看MYDan手册http://mydan.org/_book/quick_install/ ,
确保控制器可以调通客户端,否则在后续添加机器步骤会报错)

2. clone 本项目到/opt目录下

3. 添加调用插件到mydan中

    cp /opt/AntDen/slave/code/antden  /opt/mydan/dan/agent/code/antden

4. 添加工具到系统环境

    ln -fsn /opt/AntDen/bin/antden /bin/

5. 运行AntDen命令(注: 命令是全小写)

    antden

===================================使用=====================================

1.在所有客户端上启动slave:

antden slave start

2.在控制机上启动调度器和控制器

antden scheduler start
antden controller start

3.在控制机上添加slave到集群

antden scheduler addmachine 127.0.0.1

4.提交一个作业

antden scheduler submitjob --file /opt/AntDen/example/job.yaml

===============================核心**=====================================

  1. 对资源和执行任务的高度抽象

    资源的抽象: 可以添加自定义的资源采集插件,在添加机器的环节自动把资源导入调度器,在提交作业的时候可以匹配对应的资源

    执行任务的抽象: 任务由执行器去具体启停,执行器可以用 perl/python 等去编写

     提交的作业需要标明执行器,作业的配置文件中的所有信息,除了executer和resources两个字段,
     其他所有参数,原封不动的传递到执行器的启动环节。
    
     执行器需要四个插件,checkparams,start,stop,status
    
        checkparams: 用于检查传入的参数的正确性
        start: 获取到执行参数后,需要返回生成的作业标示号(如:进程可以返回进程号,标示号提供给stop,status插件)
        stop: 通过标示号停止一个执行的原子
        status: 通过标示号去查看执行情况
    
  2. 分层结构,可以拆解使用

    控制器和客户端来完成任务的调用和管理。调度器可以单独开发对接,只要能完成资源的记录和分配即可,通过控制器来完成剩下的工作。 任务退出后,通过回调告知调度器释放对应的资源。

  3. 通过状态机避免分布式情况下数据一致性问题