全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
批量计算

环境变量

更新时间:2017-06-07 13:26:11

任务程序环境变量

1. BatchCompute为用户任务程序提供以下的环境变量:

变量名 变量值
BATCH_COMPUTE_DAG_JOB_ID 作业ID,视实际情况而定
BATCH_COMPUTE_DAG_TASK_ID 任务名称,视实际情况而定
BATCH_COMPUTE_DAG_INSTANCE_ID 实例ID,视实际情况而定
BATCH_COMPUTE_OSS_HOST OSS host,视实际情况而定
BATCH_COMPUTE_REGION 区域,视实际情况而定
BATCH_COMPUTE_CLUSTER_ID cluser id
BATCH_COMPUTE_WORKER_ID worker id

程序运行在 docker 容器中的环境变量稍有不同:

变量名 变量值
USER root
PWD /batchcompute/workdir
PATH /sbin:/usr/sbin:/bin:/usr/bin, 注意没有/usr/local/bin; 如果要设置PATH,需要在提交作业时在EnvVars字段中指定
HOME /root
BATCH_COMPUTE_DAG_JOB_ID 作业ID,视实际情况而定
BATCH_COMPUTE_DAG_TASK_ID 任务名称,视实际情况而定
BATCH_COMPUTE_DAG_INSTANCE_ID 实例ID,视实际情况而定
BATCH_COMPUTE_OSS_HOST OSS host,视实际情况而定
BATCH_COMPUTE_REGION 区域,视实际情况而定

2. 如何使用

用户只需在任务运行程序中从环境变量中获取即可, 举例:

(1) python 程序中使用环境变量:

  1. task_id = os.environ['BATCH_COMPUTE_DAG_TASK_ID']
  2. instance_id = os.environ['BATCH_COMPUTE_DAG_INSTANCE_ID']

(2) java 程序中使用环境变量:

  1. String taskId = System.getenv("BATCH_COMPUTE_DAG_TASK_ID");
  2. String instanceId = System.getenv("BATCH_COMPUTE_DAG_INSTANCE_ID");

3. 自定义环境变量

除了系统提供的环境变量,你也可以在提交作业的时候设置新的环境变量。

(1) 使用 Python SDK

代码片段:

  1. env = {
  2. 'k1': 'v1',
  3. 'k2': 'v2'
  4. }
  5. ...
  6. job_desc['DAG']['Tasks']['my-task']['Parameters']['Command']['EnvVars']=env
  7. ...

(2) 使用 Java SDK

代码片段:

  1. Command cmd= new Command();
  2. cmd.addEnvVars("k1","v1");
  3. cmd.addEnvVars("k2","v2");
  4. ...
  5. TaskDescription desc = TaskDescription();
  6. Parameters parmas = new Parameters();
  7. params.setCommand(cmd);
  8. ...
  9. desc.setParameters(params);

(3) 使用命令行工具:

  1. bcs sub "python main.py" -e k1:v1,k2:v2
本文导读目录