介绍如何使用控制台来提交一个作业,目的是统计一个日志文件中 INFO、WARN、ERROR、DEBUG 出现的次数。
本作业是统计一个日志文件中 INFO、WARN、ERROR、DEBUG 出现的次数。
该作业包含3个任务: split、 count 和 merge:
DAG图例
下载本例子所需的数据: log-count-data.txt
将 log-count-data.txt 上传到:
oss://your-bucket/log-count/log-count-data.txt
本例的作业程序是使用 python 编写的, 下载本例所需的程序: log-count.tar.gz
本例不需要改动示例代码。直接将 log-count.tar.gz 上传到 oss,如上传到:
oss://your-bucket/log-count/log-count.tar.gz。
如何上传前面已经讲过。
命令如下:
> cd log-count #进入目录
> tar -czf log-count.tar.gz * #打包,将所有这个目录下的文件打包到 log-count.tar.gz
可以运行这条命令查看压缩包内容:
$ tar -tvf log-count.tar.gz
可以看到以下列表:
conf.py
count.py
merge.py
split.py
登录 BatchCompute 控制台 。
单击 作业列表 > 提交作业 进行作业提交。请选择合适的 Region(该 region 需要和前面上传数据的OSS的 bucket 的 region 一致)。
如上图所示,首先填写作业名称、作业优先级等基本信息,接下来填写作业的详细描述,有两种方法:
JSON编辑器:也可以直接使用 JSON 的方式描述作业 (Job) 包含的任务 (Task) 以及依赖关系,关于作业的 JSON 描述及其参数说明,可参考作业 (Job) 相关的API使用文档。
我们这里直接采用下面已经准备好的JSON描述粘贴到 JSON编辑器中就可以完成作业描述。
{
"DAG": {
"Dependencies": {
"split": [
"count"
],
"count": [
"merge"
],
"merge": []
},
"Tasks": {
"split": {
"InstanceCount": 1,
"LogMapping": {},
"AutoCluster": {
"Configs": {
"Networks": {
"VPC": {
"CidrBlock": "192.168.0.0/16"
}
}
},
"ResourceType": "OnDemand",
"InstanceType": "ecs.sn1ne.large",
"ImageId": "img-ubuntu-vpc"
},
"Parameters": {
"Command": {
"EnvVars": {},
"CommandLine": "python split.py",
"PackagePath": "oss://your-bucket/log-count/log-count.tar.gz"
},
"InputMappingConfig": {
"Lock": true
},
"StdoutRedirectPath": "oss://your-bucket/log-count/logs/",
"StderrRedirectPath": "oss://your-bucket/log-count/logs/"
},
"InputMapping": {
"oss://your-bucket/log-count/": "/home/input/"
},
"OutputMapping": {
"/home/output/": "oss://your-bucket/log-count/"
},
"MaxRetryCount": 0,
"Timeout": 21600,
"ClusterId": ""
},
"merge": {
"InstanceCount": 1,
"LogMapping": {},
"AutoCluster": {
"Configs": {
"Networks": {
"VPC": {
"CidrBlock": "192.168.0.0/16"
}
}
},
"ResourceType": "OnDemand",
"InstanceType": "ecs.sn1ne.large",
"ImageId": "img-ubuntu-vpc"
},
"Parameters": {
"Command": {
"EnvVars": {},
"CommandLine": "python merge.py",
"PackagePath": "oss://your-bucket/log-count/log-count.tar.gz"
},
"InputMappingConfig": {
"Lock": true
},
"StdoutRedirectPath": "oss://your-bucket/log-count/logs/",
"StderrRedirectPath": "oss://your-bucket/log-count/logs/"
},
"InputMapping": {
"oss://your-bucket/log-count/": "/home/input/"
},
"OutputMapping": {
"/home/output/": "oss://your-bucket/log-count/"
},
"MaxRetryCount": 0,
"Timeout": 21600,
"ClusterId": ""
},
"count": {
"InstanceCount": 3,
"LogMapping": {},
"AutoCluster": {
"Configs": {
"Networks": {
"VPC": {
"CidrBlock": "192.168.0.0/16"
}
}
},
"ResourceType": "OnDemand",
"InstanceType": "ecs.sn1ne.large",
"ImageId": "img-ubuntu-vpc"
},
"Parameters": {
"Command": {
"EnvVars": {},
"CommandLine": "python count.py",
"PackagePath": "oss://your-bucket/log-count/log-count.tar.gz"
},
"InputMappingConfig": {
"Lock": true
},
"StdoutRedirectPath": "oss://your-bucket/log-count/logs/",
"StderrRedirectPath": "oss://your-bucket/log-count/logs/"
},
"InputMapping": {
"oss://your-bucket/log-count/": "/home/input/"
},
"OutputMapping": {
"/home/output/": "oss://your-bucket/log-count/"
},
"MaxRetryCount": 0,
"Timeout": 21600,
"ClusterId": ""
}
}
},
"Description": "batchcompute job",
"Priority": 0,
"JobFailOnInstanceFail": true,
"Type": "DAG",
"Name": "log-count"
}
上述 JSON 描述的作业要正常运行,您需要根据自己的实际情况,对描述中一些配置项做一些适配修改,包括:
"InstanceType": "ecs.sn1ne.large"
。用户实际可用的实例类型,可以单击 DAG编辑器中的单个 Task,通过下拉选择框来选择。"PackagePath": "oss://your-bucket/log-count/log-count.tar.gz"
,填写为实际的程序包路径。oss://your-bucket/log-count/logs/
,填写为实际的日志路径(需要在OSS上提前创建好)。oss://your-bucket/log-count/logs/
,填写为实际的日志路径(需要在OSS上提前创建好)。"oss://your-bucket/log-count/": "/home/input/"
,填写为输入数据的实际路径。输出数据的映射路径:"/home/output/": "oss://your-bucket/log-count/"
,填写为输出数据的实际路径。
确定各个参数及路径填写正确后,点击左下角的提交作业并确认,就完成了作业提交。
单击作业列表中最新提交的 log-count 作业,可以查看详情:
单击任务名称 split,可以查看任务详情:
单击绿色方块,可以查看实例的日志:
您可以登录 OSS 控制台 查看 your-bucket 这个 bucket 下面的这个文件:/log-count/merge_result.json。
内容应该如下:
{"INFO": 2460, "WARN": 2448, "DEBUG": 2509, "ERROR": 2583}
进入“费用中心”的 账户概览 页面。 在页面滑动“预警”参数后面的滑动按钮,即...
什么是云创多媒体引擎? 定义视频工业化生产链路,以视频生产流水线化,规模化为...
在昨天正式结束的2021天猫618消费季 众多品牌通过阿里云数据中台的系列解决方案 ...
【51CTO.com原创稿件】云计算凭借低成本、更高效等优势改变了基础设施、平台、应...
1. 接口描述 接口请求域名: as.tencentcloudapi.com 。 本接口(DeleteAutoScal...
网络安全已经成为一项重要的战略任务,今天的企业需要监控和保护其IT资产免受不...
除了sedo 域名交易 榜,国内也有不少 域名 近日成交,一起来看看: 域名K5.cn以1...
近年来,民众生活水平与追求的不断提升,使得医疗健康所受到的关注度持续走高。...
以下视频介绍了批量计算的典型应用场景: 基因测序 生物信息公司或实验室利用测...
据海外网,据韩联社26日报道,韩国疾病管理本部新的通报称,当地时间25日16时至2...