<commit_before>
+++
date = "2016-01-27T16:14:21+08:00"
title = "Elastic-Job-Cloud部署指南"
weight=53
+++

# Elastic-Job-Cloud部署指南

## 部署步骤

1. 启动`Zookeeper`, `Mesos Master/Agent`以及`Elastic-Job-Cloud-Scheduler`。

2. 将打包之后的作业`tar.gz`文件放至网络可访问的位置，如：`ftp`或`http`。打包的`tar.gz`文件中`Main`方法需要调用`Elastic-Job-Cloud`提供的`JobBootstrap.execute`方法。

3. 使用`curl`命令调用`RESTful API`注册作业。

## RESTful API

`Elastic-Job-Cloud`提供APP及作业注册/注销`Restful API`。可通过`curl`操作。

### 注册作业App

url：`app`

方法：`POST`

参数类型：`application/json`

参数列表：

| 属性名                              | 类型  |是否必填 | 缺省值 | 描述                                                                              |
| -----------------------------------|:------|:-------|:------|:---------------------------------------------------------------------------------|
|appName                             |String |`是`    |       | 作业应用名称。为`Elastic-Job-Cloud`的作业应用唯一标识                                 |
|appURL                              |String |`是`    |       | 作业应用所在路径。必须是可以通过网络访问到的路径                                        |
|cpuCount                            |double |否      |   1   | 作业应用启动所需要的`CPU`数量                                                        |
|memoryMB                            |double |否      |  128  | 作业应用启动所需要的内存`MB`                                                         |
|bootstrapScript                     |String |`是`    |       | 启动脚本，如：`bin\start.sh`                                                      |
|appCacheEnable                      |bool   |否      | true  | 每次执行作业时是否从缓存中读取应用。禁用则每次执行任务均从应用仓库下载应用至本地             |

```shell
curl -l -H "Content-type: application/json" -X POST -d 
'{"appName":"foo_app","appURL":"http://app_host:8080/foo-job.tar.gz","cpuCount":0.1,"memoryMB":64.0,"bootstrapScript":"bin/start.sh","appCacheEnable":true}' 
http://elastic_job_cloud_host:8899/app
```

### 修改作业App配置

url：`app`
<commit_msg>Update docs.<commit_after>
+++
date = "2016-01-27T16:14:21+08:00"
title = "Elastic-Job-Cloud部署指南"
weight=53
+++

# Elastic-Job-Cloud部署指南

## 部署步骤

1. 启动`Zookeeper`, `Mesos Master/Agent`以及`Elastic-Job-Cloud-Scheduler`。

2. 将打包之后的作业`tar.gz`文件放至网络可访问的位置，如：`ftp`或`http`。打包的`tar.gz`文件中`Main`方法需要调用`Elastic-Job-Cloud`提供的`JobBootstrap.execute`方法。

3. 使用`curl`命令调用`RESTful API`注册APP及作业。

## RESTful API

`Elastic-Job-Cloud`提供APP及作业注册/注销`Restful API`。可通过`curl`操作。

### 注册作业App

url：`app`

方法：`POST`

参数类型：`application/json`

参数列表：

| 属性名                              | 类型  |是否必填 | 缺省值 | 描述                                                                              |
| -----------------------------------|:------|:-------|:------|:---------------------------------------------------------------------------------|
|appName                             |String |`是`    |       | 作业应用名称。为`Elastic-Job-Cloud`的作业应用唯一标识                                 |
|appURL                              |String |`是`    |       | 作业应用所在路径。必须是可以通过网络访问到的路径                                        |
|cpuCount                            |double |否      |   1   | 作业应用启动所需要的`CPU`数量                                                        |
|memoryMB                            |double |否      |  128  | 作业应用启动所需要的内存`MB`                                                         |
|bootstrapScript                     |String |`是`    |       | 启动脚本，如：`bin\start.sh`                                                        |
|appCacheEnable                      |bool   |否      | true  | 每次执行作业时是否从缓存中读取应用。禁用则每次执行任务均从应用仓库下载应用至本地             |
|eventTraceSamplingCount             |int    |否      | 0     | 事件追踪采样率统计条数，默认不采样                                                    |

```shell
curl -l -H "Content-type: application/json" -X POST -d 
'{"appName":"foo_app","appURL":"http://app_host:8080/foo-job.tar.gz","cpuCount":0.1,"memoryMB":64.0,"bootstrapScript":"bin/start.sh","appCacheEnable":true,"eventTraceSamplingCount":0}' 
http://elastic_job_cloud_host:8899/app
```

### 修改作业App配置

url：`app`

{'fraction_non_alphanumeric': 0.19519595448798988, 'fraction_numerical': 0.020733249051833123, 'mean_word_length': 1.185635359116022, 'pattern_counts': {'":': 13, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 24, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7058005', 'n_tokens_mistral': 1533, 'n_tokens_neox': 1609, 'n_words': 148}