全部产品
Search
文档中心

批量计算:环境变量

更新时间:Sep 22, 2022

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. 如何使用环境变量

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

2.1. Python 程序中使用环境变量

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

2.2. Java 程序中使用环境变量

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

3. 自定义环境变量

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

3.1. 使用 Python SDK

代码片段:

env = {
   'k1': 'v1',
   'k2': 'v2'
}
...
job_desc['DAG']['Tasks']['my-task']['Parameters']['Command']['EnvVars']=env
...

3.2. 使用 Java SDK

代码片段:

Command cmd= new Command();
cmd.addEnvVars("k1","v1");
cmd.addEnvVars("k2","v2");
...

TaskDescription desc = TaskDescription();
Parameters parmas = new Parameters();
params.setCommand(cmd);
...
desc.setParameters(params);

3.3. 使用命令行工具

bcs sub "python main.py" -e k1:v1,k2:v2