Skip to content

EasyML User's Guide

Xinjie Chen edited this page Jul 3, 2017 · 6 revisions

EasyML 用户使用手册

本文简要介绍了EasyML所包含的网页、模块和功能,以及如何使用EasyML搭建简单的项目工程,还有使用过程中的一些注意事项。

首页

首先,使用EasyML的第一步就是使用Chrome(谷歌浏览器)访问EasyML的部署网址。使用者可以在EasyML的导航页上进行注册和登录或者通过Guest进行登录。

Index page

为方便用户使用,目前EasyML使用一个公共账号进行登录操作,账号bdaict@hotmail.com,密码bdaict,输入账号密码进行登录,然后进入工作台面板。

工作台

登陆成功以后,网页会跳转到工作台操作页面。在这个工作台,用户可以构建自己需要的机器学习任务和查看已经在执行的任务,这个页面主要分如下几个功能区域:

在综合管理区,我们可以通过Create Job 按钮来新建一个任务,还可以上传程序和数据,登出和进行后台管理;

在左侧的列表区,我们可以根据需要进行任务、程序和数据的选择和相关操作(删除、编辑、更新等);右侧是任务和程序模块的详细信息展示。 中间的画布区可以进行任务的绘制和控制等操作。

创建任务

在创建一个新任务时,用户可以在左侧程序和数据列表区选择自己需要的程序和数据节点,然后进行绘制和参数调整:

除此之外,还可以根据任务列表里已经有的任务,找到需要的模板进行克隆(Clone),被克隆过的任务经过再编辑和调整,就可以得到自己需要的任务了。

提交任务

  • 在绘制好任务和调整完参数之后,用户就可提交任务给服务端执行了,注意要输入一个有效的Job Name,还可以根据需要输入任务的描述信息(Description),然后点击Submit进行提交:
  • 提交完任务之后,系统会自动跳转到监控状态页。

监控任务

在任务执行时,用户可以实时监控任务和单个节点的执行状态,并且可以查看已经执行了的节点的日志。

任务和任务的节点会有SUCCESS(成功)RUNNING(正在执行)KILLED(被中断)SUSPEND(挂起) 几种状态。SUCCESS是执行成功的状态,RUNNING是正在执行的状态,KILLED是因为未知的程序错误或者用户自己的Stop操作而被停止的任务,SUSPEND是因为系统环境问题(如内存被写满)或者用户操作而被暂停任务。

  • 右侧的Job信息区可以看到整个任务的执行状态,绘图区节点的颜色代表了节点的执行状态:
  • 我们也可以通过绘图区下方的STOP按钮主动杀死一个任务,或者通过Refresh手动刷新任务的状态。

查看输出和日志

当一个程序节点执行完成,处于SUCCESS(绿色)或者KILLED(红色)的时候,用户可以查看程序的输出Log(StdOut和StdErr)和输出数据

  • 通过右键点击程序节点,在菜单里面选择显示标准输出显示标准错误来查看StdOutStdErr
  • 在经过短暂的响应时间后,就会弹出相应的显示面板(这些输出log在调试程序的时候显得十分重要):
  • 查看结果数据,可以用鼠标右键点击需要查看的节点的绿色输出点,然后系统会自动弹出数据预览面板:
  • 在弹出面板中,查看输出路径的全部文件列表内容预览(目前只支持预览,不能查看全部),还可以通过下载保存将文件下载到本地查看或者保存在服务器端,保存的数据会出现在左侧Data列表中用户选择的目录下:

管理

EasyML中,用户可以根据自己的需要管理属于自己的程序、数据和任务,我们会提供新建、编辑、升级和删除等功能方便用户使用。

上传程序和数据

除了系统提供的系统程序和数据,用户还可以根据自己的需求上传自己需要的程序和数据,以此来搭建属于自己的任务。

上传数据

  • 上传数据时需要在客户端点击Upload Data按钮,然后就会弹出构建好的上传面板,在上面填写好程序的 Name(名称)、Category(所属分类)、Datatype(数据类型TSV和CSV格式等)和Description(描述) 等信息,在面板左下角选择好要传的数据文件,然后点击Submit进行提交:

上传程序

  • 首先,用户要将自己要执行的程序进行打包,系统规定的标准时打成zip格式的压缩包 (必须要保证程序的可执行包等包含在一个文件夹中,再对该文件夹进行打包) 如对Logistic_Regression的单机训练包local.jar包进行程序上传,则目录结构为:
  • 在客户端点击Upload Program按钮,然后就会弹出构建好的上传面板,在上面填写相关信息;

  • 点击Submit按钮进行上传:

上传程序的注意事项

  • Type 决定了程序的执行方式,包括三种程序类型(目前ETL和可编程节点功能尚未集成到EasyML中,后续会整合):

    1.Standalone 单机的执行方式,例如执行一个java或python程序;

    2.Distributed 分布式的执行方式,如一个Spark的算法包;

    3.ETL ETL模块的类型,进行数据的读入和写出的模块。

  • Programable 决定了程序是否是可编程节点,这类程序会在以后的章节中进行说明,除了该类型的程序,其他的程序在此处都选择no

  • Determinacy 标识程序是否是一个确定性的程序,是否有Bug存在等问题

命令行(CMD)

命令行要执行程序时的启动语句,在EasyML中如果想让自己的程序能够运行成功,需要在上传自己程序时提交我们规定格式的命令行。

命令行由CMD头和参数表组成。CMD头是基本的程序提交语句,每个该类型程序都不会改变,如"spark-submit..."; 参数表是该类程序的可变参数,如输入信息,输出信息和参数信息等,我们将参数表的书写格式进行了如下定义:

  1. 输入文件占位符:{in:文件类型:"文件描述"}

  2. 输出文件占位符:{out:文件类型,存储类型:"文件描述" }

  3. 数值类占位符:["参数名":参数类型,最小值,最大值:default,默认值]

  4. 数值类参数的类型为int、double其中参数的最小值和最大值可选:

  5. 没有最大值最小值:["参数名":参数类型:default,默认值]

  6. 只有最小值:["参数名":参数类型,最小值:default,默认值]

  7. 只有最大值:["参数名":参数类型,,最大值:default,默认值]

  8. bool类型占位符:["参数名":bool:default,默认值]

  9. string类型占位符:["参数名":string:default,"默认值"]

  10. 可编程节点脚本占位符:("描述")

在上传的面板上,有辅助工具帮助用户来生成命令行:

管理程序数据和任务

更新和编辑

对于用户自己上传的数据,可以进行升级编辑。升级需要重新传程序压缩包,而编辑不需要。

删除

每个用户都可以删除属于自己的程序、数据和任务。

全局搜索

当用户的程序和数据太多不易于查找时,用户可以通过左侧面板的搜索框,输入需要搜索的程序、数据或任务名,点击回车按钮,搜索框下方会自动进行全局的数据搜索并将搜索结果显示于下方。