华为云用户手册

  • 上传数据到指定目录 将下载的原始数据存放在/home/ma-user/ws/training_data目录下。具体步骤如下: 进入到/home/ma-user/ws/目录下。 创建目录“training_data”,并将原始数据放置在此处。 mkdir training_data 数据存放参考目录结构如下: ${workdir} #工作目录,例如/home/ma-user/ws |── training_data |── train-00000-of-00001-a09b74b3ef9c3b56.parquet #训练原始数据集
  • Alpaca数据 本教程使用到的训练数据集是Alpaca数据集。Alpaca是由OpenAI的text-davinci-003引擎生成的包含52k条指令和演示的数据集。这些指令数据可以用来对语言模型进行指令调优,使语言模型更好地遵循指令。 训练数据集下载:https://huggingface.co/datasets/tatsu-lab/alpaca/resolve/main/data/train-00000-of-00001-a09b74b3ef9c3b56.parquet,数据大小:24M左右。
  • 自定义数据 用户也可以自行准备训练数据。数据要求如下: 使用标准的.json格式的数据,通过设置--json-key来指定需要参与训练的列。 请注意huggingface中的数据集具有如下this格式。可以使用–json-key标志更改数据集文本字段的名称,默认为text。在维基百科数据集中,它有四列,分别是id、url、title和text。可以指定–json-key 标志来选择用于训练的列。 { 'id': '1', 'url': 'https://simple.wikipedia.org/wiki/April', 'title': 'April', 'text': 'April is the fourth month...' }
  • Step3 启动容器镜像 启动容器镜像前请先按照参数说明修改${}中的参数。可以根据实际需要增加修改参数。启动容器命令如下。 container_work_dir="/home/ma-user/ws" # 容器内挂载的目录 work_dir="/home/ma-user/ws" # 宿主机挂载目录,存放了代码、数据、权重 container_name="ascendspeed" # 启动的容器名称 image_name="${container_name} " # 启动的镜像ID docker run -itd \ --device=/dev/davinci0 \ --device=/dev/davinci1 \ --device=/dev/davinci2 \ --device=/dev/davinci3 \ --device=/dev/davinci4 \ --device=/dev/davinci5 \ --device=/dev/davinci6 \ --device=/dev/davinci7 \ --device=/dev/davinci_manager \ --device=/dev/devmm_svm \ --device=/dev/hisi_hdc \ -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ --cpus 192 \ --memory 1000g \ --shm-size 200g \ --net=host \ -v ${work_dir}:${container_work_dir} \ --name ${container_name} \ $image_name \ /bin/bash 参数说明: --name ${container_name} 容器名称,进入容器时会用到,此处可以自己定义一个容器名称,例如ascendspeed。 -v ${work_dir}:${container_work_dir} 代表需要在容器中挂载宿主机的目录。宿主机和容器使用不同的文件系统。work_dir为宿主机中工作目录,目录下存放着训练所需代码、数据等文件。container_work_dir为要挂载到的容器中的目录。为方便两个地址可以相同。 容器不能挂载到/home/ma-user目录,此目录为ma-user用户家目录。如果容器挂载到/home/ma-user下,拉起容器时会与基础镜像冲突,导致基础镜像不可用。 driver及npu-smi需同时挂载至容器。 不要将多个容器绑到同一个NPU上,会导致后续的容器无法正常使用NPU功能。 ${image_name} 为docker镜像的ID,在宿主机上可通过docker images查询得到。 通过容器名称进入容器中。 docker exec -it ${container_name} bash 启动容器时默认用户为ma-user用户。如果需要切换到root用户可以执行以下命令: sudo su source /home/ma-user/.bashrc 如果继续使用ma-user,在使用其他属组如root用户上传的数据和文件时,可能会存在权限不足的问题,因此需要执行如下命令统一文件属主。 sudo chown -R ma-user:ma-group ${container_work_dir} # ${container_work_dir}:/home/ma-user/ws 容器内挂载的目录 例如: sudo chown -R ma-user:ma-group /home/ma-user/ws 安装依赖包。 #进入scripts目录,xxx为包版本,请按照实际情况替换 cd /home/ma-user/ws/xxx-Ascend/llm_train/AscendSpeed/scripts #执行安装命令 pip install -r requirements.txt
  • Step1 检查环境 SSH登录机器后,检查NPU设备检查。运行如下命令,返回NPU设备信息。 npu-smi info # 在每个实例节点上运行此命令可以看到NPU卡状态 npu-smi info -l | grep Total # 在每个实例节点上运行此命令可以看到总卡数 如出现错误,可能是机器上的NPU设备没有正常安装,或者NPU镜像被其他容器挂载。请先正常安装NPU设备和驱动,或释放被挂载的NPU。 检查docker是否安装。 docker -v #检查docker是否安装 如尚未安装,运行以下命令安装docker。 yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch64 配置IP转发,用于容器内的网络访问。执行以下命令查看net.ipv4.ip_forward配置项的值,如果为1,可跳过此步骤。 sysctl -p | grep net.ipv4.ip_forward 如果net.ipv4.ip_forward配置项的值不为1,执行以下命令配置IP转发。 sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf sysctl -p | grep net.ipv4.ip_forward
  • 镜像地址 本教程中用到的基础镜像地址和配套版本关系如下表所示,请提前了解。 表1 基础镜像地址 镜像用途 镜像地址 基础镜像(训练和推理通用) 西南-贵阳一:swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_2_1_ascend:pytorch_2.1.0-cann_8.0.rc1-py_3.9-hce_2.0.2312-aarch64-snt9b-20240516142953-ca51f42 本文档兼容cann_7.0.1.1和cann_8.0.rc1的镜像,推荐使用较新版本的cann_8.0.rc1镜像。 表2 模型镜像版本 模型 版本 CANN cann_8.0.rc1 PyTorch pytorch_2.1.0
  • 模型转换失败时如何查看日志和定位原因? 在模型转换的过程,如果出现模型转换失败,可以参考以下步骤查看日志并定位原因: 设置DEBUG日志。 设置MindSpore日志环境变量。 #shell export GLOG_v=0 # 0-DEBUG、1-INFO、2-WARNING、3-ERROR 设置CANN日志环境变量。 #shell export ASCEND_GLOBAL_LOG_LEVEL=1 # 0:表示DEBUG、1:表示INFO、2:表示WARNING、3:表示ERROR 4: 表示NONE export ASCEND_SLOG_PRINT_TO_STDOUT=1 # 表示日志打印 设置DUMP模型转换中间图。 设置DUMP中间图环境变量。 #shell export DUMP_GE_GRAPH=2 # 1:表示dump图全量内容、 2:表示不dump权重数据的基础图、 3:表示只dump节点关系的精简图 export DUMP_GRAPH_LEVEL=2 # 1:表示dump图所有图、 2:表示dump除子图外的所有图、 3:表示只dump最后一张图 问题分析。 配置以上的环境变量之后,再重新转换模型,导出对应的日志和dump图进行分析: 报错日志中搜到“not support onnx data type”,表示MindSpore暂不支持该算子。 报错日志中搜到“Convert graph to om failed”,表示CANN模块进行图编译存在保存,需要结合CANN的报错日志和dump图进行具体分析。 父主题: 常见问题
  • Step1 检查环境 SSH登录机器后,检查NPU设备检查。运行如下命令,返回NPU设备信息。 npu-smi info # 在每个实例节点上运行此命令可以看到NPU卡状态 npu-smi info -l | grep Total # 在每个实例节点上运行此命令可以看到总卡数 如出现错误,可能是机器上的NPU设备没有正常安装,或者NPU镜像被其他容器挂载。请先正常安装NPU设备和驱动,或释放被挂载的NPU。 检查docker是否安装。 docker -v #检查docker是否安装 如尚未安装,运行以下命令安装docker。 yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch64 配置IP转发,用于容器内的网络访问。执行以下命令查看net.ipv4.ip_forward配置项的值,如果为1,可跳过此步骤。 sysctl -p | grep net.ipv4.ip_forward 如果net.ipv4.ip_forward配置项的值不为1,执行以下命令配置IP转发。 sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf sysctl -p | grep net.ipv4.ip_forward
  • Step3 启动容器镜像 启动容器镜像前请先按照参数说明修改${}中的参数。可以根据实际需要增加修改参数。启动容器命令如下。 container_work_dir="/home/ma-user/ws" # 容器内挂载的目录 work_dir="/home/ma-user/ws" # 宿主机挂载目录,存放了代码、数据、权重 container_name="${container_name}" # ${container_name}为启动的容器名称 image_name="${image_name}" # ${image_name}启动的镜像ID或name docker run -itd \ --device=/dev/davinci0 \ --device=/dev/davinci1 \ --device=/dev/davinci2 \ --device=/dev/davinci3 \ --device=/dev/davinci4 \ --device=/dev/davinci5 \ --device=/dev/davinci6 \ --device=/dev/davinci7 \ --device=/dev/davinci_manager \ --device=/dev/devmm_svm \ --device=/dev/hisi_hdc \ -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ --cpus 192 \ --memory 1000g \ --shm-size 32g \ --net=host \ -v ${work_dir}:${container_work_dir} \ --name ${container_name} \ $image_name \ /bin/bash 参数说明: --name ${container_name} 容器名称,进入容器时会用到,此处可以自己定义一个容器名称,例如ascendspeed。 -v ${work_dir}:${container_work_dir} 代表需要在容器中挂载宿主机的目录。宿主机和容器使用不同的文件系统。work_dir为宿主机中工作目录,目录下存放着训练所需代码、数据等文件。container_work_dir为要挂载到的容器中的目录。为方便两个地址可以相同。 容器不能挂载到/home/ma-user目录,此目录为ma-user用户家目录。如果容器挂载到/home/ma-user下,拉起容器时会与基础镜像冲突,导致基础镜像不可用。 driver及npu-smi需同时挂载至容器。 不要将多个容器绑到同一个NPU上,会导致后续的容器无法正常使用NPU功能。 ${image_name} 为docker镜像的ID,在宿主机上可通过docker images查询得到。 通过容器名称进入容器中。 docker exec -it ${container_name} bash 启动容器时默认用户为ma-user用户。如果需要切换到root用户可以执行以下命令: sudo su source /home/ma-user/.bashrc 如果继续使用ma-user,在使用其他属组如root用户上传的数据和文件时,可能会存在权限不足的问题,因此需要执行如下命令统一文件属主。 sudo chown -R ma-user:ma-group ${container_work_dir} # ${container_work_dir}:/home/ma-user/ws 容器内挂载的目录 例如: sudo chown -R ma-user:ma-group /home/ma-user/ws 安装依赖包。 #进入scriptsscripts目录,xxx为包版本,请按照实际情况替换 cd /home/ma-user/ws/xxx-Ascend/llm_train/AscendSpeed/scripts #执行安装命令 pip install -r requirements.txt
  • 镜像地址 本教程中用到的基础镜像地址和配套版本关系如下表所示,请提前了解。 表1 基础容器镜像地址 镜像用途 镜像地址 基础镜像(训练和推理通用) 西南-贵阳一:swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_2_1_ascend:pytorch_2.1.0-cann_8.0.rc1-py_3.9-hce_2.0.2312-aarch64-snt9b-20240516142953-ca51f42 本文档兼容cann_7.0.1.1和cann_8.0.rc1的镜像,推荐使用较新版本的cann_8.0.rc1镜像。 表2 模型镜像版本 模型 版本 CANN cann_8.0.rc1 PyTorch pytorch_2.1.0 PyTorch_npu 2.1.0.post3-20240413
  • 解决方案 找到.ssh文件夹。一般位于“C:\Users”,例如“C:\Users\xxx”。 “C:\Users”目录下的文件名必须和Windows登录用户名完全一致。 右键单击.ssh文件夹,选择“属性”。然后单击“安全”页签。 单击“高级”,在弹出的高级安全设置界面单击“禁用继承”, 在弹出的“阻止继承”窗口单击“从此对象中删除所有继承的权限”。此时所有用户都将被删除。 添加所有者:在同一窗口中,单击“添加”,在弹出的新窗口中,单击“主体”后面的“选择主体”,弹出“选择用户,计算机,服务账户或组”窗口,单击“高级”,输入用户名, 单击“立即查找”按钮,显示用户搜索结果列表。 选择您的用户账户,然后单击“确定”(大约四个窗口)以关闭所有窗口。 图1 添加所有者 完成所有操作后,再次关闭并打开VS Code并尝试连接到远程SSH主机。备注:此时密钥需放到.ssh文件夹中。
  • 问题现象 报错“Bad owner or permissions on C:\Users\Administrator/.ssh/config”或“Connection permission denied (publickey). Please make sure the key file is correctly selected and the file permission is correct. You can view the instance keypair information on ModelArts console.”
  • 开发环境Notebook 开发环境的Notebook,根据不同的工作环境,对应支持的镜像和版本有所不同。 表3 Notebook支持的镜像 镜像名称 镜像描述 适配芯片 支持SSH远程开发访问 支持在线JupyterLab访问 pytorch1.8-cuda10.2-cudnn7-ubuntu18.04 CPU、GPU通用算法开发和训练基础镜像,预置AI引擎PyTorch1.8 CPU/GPU 是 是 mindspore1.7.0-cuda10.1-py3.7-ubuntu18.04 CPU and GPU general algorithm development and training, preconfigured with AI engine MindSpore1.7.0 and cuda 10.1 CPU/GPU 是 是 mindspore1.7.0-py3.7-ubuntu18.04 CPU general algorithm development and training, preconfigured with AI engine MindSpore1.7.0 CPU 是 是 pytorch1.10-cuda10.2-cudnn7-ubuntu18.04 CPU and GPU general algorithm development and training, preconfigured with AI engine PyTorch1.10 and cuda10.2 CPU/GPU 是 是 tensorflow2.1-cuda10.1-cudnn7-ubuntu18.04 CPU、GPU通用算法开发和训练基础镜像,预置AI引擎TensorFlow2.1 CPU/GPU 是 是 tensorflow1.13-cuda10.0-cudnn7-ubuntu18.04 GPU通用算法开发和训练基础镜像,预置AI引擎TensorFlow1.13.1 GPU 是 是 conda3-ubuntu18.04 Clean user customized base image only include conda CPU 是 是 pytorch1.4-cuda10.1-cudnn7-ubuntu18.04 CPU、GPU通用算法开发和训练基础镜像,预置AI引擎PyTorch1.4 CPU/GPU 是 是 conda3-cuda10.2-cudnn7-ubuntu18.04 Clean user customized base image include cuda10.2, conda CPU 是 是 tensorflow1.15-mindspore1.7.0-cann5.1.0-euler2.8-aarch64 Ascend+ARM算法开发和训练基础镜像,AI引擎预置TensorFlow和MindSpore Ascend 是 是 modelbox1.3.0-tensorrt7.1.3-cuda10.2-cudnn8-euler2.9.6 AI应用开发基础镜像,预置AI应用编排引擎ModelBox、AI引擎TensorRT,仅支持SSH连接 GPU 是 否 modelbox1.3.0-libtorch1.9.1-cuda10.2-cudnn8-euler2.9.6 AI应用开发基础镜像,预置AI应用编排引擎ModelBox、AI引擎LibTorch,仅支持SSH连接 GPU 是 否 spark2.4.5-ubuntu18.04 CPU algorithm development and training, prebuilt PySpark 2.4.5 and is able to attach to preconfigured spark cluster including MRS and DLI. CPU 否 是 mlstudio-pyspark2.3.2-ubuntu16.04 CPU算法开发和训练基础镜像,包含可以图形化机器学习算法开发和调测MLStudio工具,并预置PySpark2.3.2 CPU 否 是 mindspore_1.10.0-cann_6.0.1-py_3.7-euler_2.8.3 Ascend+ARM algorithm development and training. MindSpore is preset in the AI engine. Ascend 是 是 mindspore_1.9.0-cann_6.0.0-py_3.7-euler_2.8.3 Ascend+ARM algorithm development and training. MindSpore is preset in the AI engine. Ascend 是 是 mindspore1.7.0-cann5.1.0-py3.7-euler2.8.3 Ascend+ARM算法开发和训练基础镜像,AI引擎预置MindSpore Ascend 是 是 tensorflow1.15-cann5.1.0-py3.7-euler2.8.3 Ascend+ARM算法开发和训练基础镜像,AI引擎预置TensorFlow Ascend 是 是 mlstudio-pyspark2.4.5-ubuntu18.04 CPU算法开发和训练基础镜像,包含可以图形化机器学习算法开发和调测MLStudio工具,并预置PySpark2.4.5 CPU 否 是 mindspore1.2.0-cuda10.1-cudnn7-ubuntu18.04 GPU算法开发和训练基础镜像,预置AI引擎MindSpore-GPU GPU 是 是 rlstudio1.0.0-ray1.3.0-cuda10.1-ubuntu18.04 CPU、GPU强化学习算法开发和训练基础镜像,预置AI引擎 CPU/GPU 是 是 mindquantum0.9.0-mindspore2.0.0-cuda11.6-ubuntu20.04 MindSpore2.0.0 and MindQuantum0.9.0 CPU 是 是 mindspore1.2.0-openmpi2.1.1-ubuntu18.04 CPU算法开发和训练基础镜像,预置AI引擎MindSpore-CPU CPU 是 是 cylp0.91.4-cbcpy2.10-ortools9.0-cplex20.1.0-ubuntu18.04 CPU运筹优化求解器开发基础镜像,预置cylp,cbcpy,ortools及cplex CPU 是 是
  • 统一镜像列表 ModelArts提供了ARM+Ascend规格的统一镜像,包括MindSpore、PyTorch。适用于开发环境,模型训练,服务部署,请参考统一镜像列表。表1、表2所示镜像仅发布在西南-贵阳一区域。 表1 MindSpore 预置镜像 适配芯片 适用范围 mindspore_2.2.0-cann_7.0.1-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 mindspore_2.1.0-cann_6.3.2-py_3.7-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 mindspore_2.2.10-cann_7.0.0-py_3.9-hce_2.0.2312-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 表2 PyTorch 预置镜像 适配芯片 适用范围 pytorch_1.11.0-cann_6.3.2-py_3.7-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 pytorch_2.1.0-cann_7.0.0-py_3.9-hce_2.0.2312-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 pytorch_1.11.0-cann_7.0.0-py_3.9-hce_2.0.2312-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署
  • 使用自定义镜像创建训练作业(Ascend) 如果Ascend-Powered-Engine预置镜像无法满足您的需求,您可以构建一个自定义镜像,通过自定义镜像创建训练作业。Ascend自定义镜像训练作业创建流程与CPU/GPU一致,但是需要额外关注: Ascend HCCL RANK_TABLE_FILE文件说明 Ascend HCCL RANK_TABLE_FILE文件提供Ascend分布式训练作业的集群信息,用于Ascend芯片分布式通信,可以被HCCL集合通信库解析。该文件格式有两个版本,分别为模板一、模板二。当前ModelArts提供的是模板二格式。 ModelArts训练环境的Ascend HCCL RANK_TABLE_FILE文件名为jobstart_hccl.json。获取方式参考表1 。 ModelArts训练环境jobstart_hccl.json文件内容(模板二)示例 { "group_count": "1", "group_list": [{ "device_count": "1", "group_name": "job-trainjob", "instance_count": "1", "instance_list": [{ "devices": [{ "device_id": "4", "device_ip": "192.1.10.254" }], "pod_name": "jobxxxxxxxx-job-trainjob-0", "server_id": "192.168.0.25" }] }], "status": "completed" } jobstart_hccl.json文件中的status字段的值在训练脚本启动时,并不一定为completed状态。因此需要训练脚本等待status字段的值等于completed之后,再去读取文件的剩余内容。 如果算法开发者期望使用模板一格式的jobstart_hccl.json文件,可以使用训练脚本,在等待status字段的值等于completed之后,将模板二格式jobstart_hccl.json文件转换为模板一格式的jobstart_hccl.json文件。 转换后的jobstart_hccl.json文件格式(模板一)示例 { "server_count": "1", "server_list": [{ "device": [{ "device_id": "4", "device_ip": "192.1.10.254", "rank_id": "0" }], "server_id": "192.168.0.25" }], "status": "completed", "version": "1.0" } 转换功能的实现,可参考示例:从 0 到 1 制作自定义镜像并用于训练(MindSpore+Ascend)中所述的Ascend训练脚本的启动脚本。 RANK_TABLE_FILE环境变量 表1 RANK_TABLE_FILE环境变量说明 环境变量 说明 RANK_TABLE_FILE 该环境变量指示Ascend HCCL RANK_TABLE_FILE文件所在目录,值为/user/config。 算法开发者可通过 “${RANK_TABLE_FILE}/jobstart_hccl.json”,路径获取该文件。 父主题: 使用自定义镜像训练模型(模型训练)
  • 创建CDM迁移作业 登录控制台,选择实例,单击“进入控制台”,单击相应工作空间后的“数据集成”。 在集群管理页面,单击集群操作列“作业管理”,进入“作业管理”页面,如图1所示。 图1 集群管理 在“连接管理”页签中,单击“新建连接”,分别创建Oracle数据连接和MRS Hive数据连接,详情请参见新建Oracle数据连接和新建MRS Hive数据连接。 在“表/文件迁移”页签中,单击“新建作业”,创建数据迁移作业。 配置Oracle源端参数、MRS hive目的端参数,并配置传递参数,参数形式为 ${varName},本示例参数为${cur_date},如图2所示。 图2 配置作业 不能在CDM迁移作业中配置“作业失败重试”参数,如有需要请在数据开发中的CDM节点配置“失败重试”参数。
  • 适用场景 业务系统中,数据源往往会采用分表的形式,以减少单表大小,支持复杂的业务应用场景。 在这种情况下,通过CDM进行数据集成时,需要针对每张表创建一个数据迁移作业。您可以参考本教程,通过数据开发模块的For Each节点和CDM节点,配合作业参数,实现批量创建分表迁移作业。 本教程中,源端MySQL数据库中存在三张分表,分别是mail01、mail02和mail03,且表结构一致,数据内容不同。目的端为MRS Hive服务。
  • 创建数据开发作业 单击工作空间的“数据开发”,进入DataArts Studio数据开发模块。 创建子作业“分表作业”,选择CDM节点,节点属性中作业类型配置为“创建新作业”,并将步骤2中复制的作业JSON粘贴到“CDM作业消息体”中。 图7 配置CDM作业消息体 编辑“CDM作业消息体”。 由于源表有三个,分别为mail001、mail002、mail003,因此需要将作业JSON中的“fromJobConfig.tableName”属性值配置为“mail${num}”,即源表名是通过参数配置。如下图所示: 图8 编辑JSON 由于数据迁移作业名不能重复,因此修改JSON中作业名称“name”属性值配置为“mail${num}”,目的是创建多个CDM集成作业,避免作业名称重复。如下图所示: 如果需要创建分库的作业,也可将作业JSON中的源连接修改为变量,方便替换。 图9 编辑JSON 添加作业参数num,用于作业JSON中调用。如下图所示: 图10 添加作业参数num 添加完成后单击“保存并提交版本”,以保存子作业。 创建主作业“集成管理”,选择For Each节点,每次循环调用分表作业,分别将参数001、002、003传递给子作业,生成不同的分表抽取任务。 关键配置如下: 子作业:选择“分表作业” 数据集:[['001'],['002'],['003']] 子作业参数:@@#{Loop.current[0]}@@ 此处子作业参数的EL表达式需要添加@@。如果不加@@包围,数据集001会被识别为1,导致源表名不存在的问题。 如下图所示: 图11 配置关键参数 配置完成后点击“保存并提交版本”,以保存主作业。 创建主作业和子作业完成后,通过测试运行主作业“集成管理”,检查数据集成作业创建情况。运行成功后,创建并运行CDM子作业成功。 图12 查看作业创建情况
  • 注意事项 由于CDM版本不同,某些属性可能不支持,比如fromJobConfig.BatchJob。当创建任务报错时,需要在请求体中删除该属性。如下图所示: 图13 修改属性 CDM节点配置为创建作业时,节点运行会检测是否有同名CDM作业。 如果CDM作业未运行,则按照请求体内容更新同名作业。 如果同名CDM作业正在运行中,则等待作业运行完成。此时该CDM作业可能被其他任务启动,可能会导致数据抽取不符合预期(如作业配置未更新、运行时间宏未替换正确等),因此请注意不要启动或者创建多个同名作业。
  • 修订记录 发布日期 修订记录 2024-05-25 第三十六次正式发布。 本次更新说明如下: “权限相关”下新增“为什么通过控制台设置匿名用户桶ACL后,旧配置中的delivered属性会被覆盖为false?”章节。 2024-02-07 第三十五次正式发布。 本次更新说明如下: 刷新OBS上传下载速率的影响因素有哪些?章节。 2024-01-18 第三十四次正式发布。 本次更新说明如下: 新增如何上传超过5GB的大对象?章节。 新增删除对象失败章节。 2023-11-15 第三十三次正式发布。 本次更新说明如下: 刷新OBS是否支持流量监控?章节的监控指标。 2023-11-03 第三十二次正式发布。 本次更新说明如下: 新增为什么会存在CNAME解析状态为未知的情况?常见问题。 新增为什么用户在华为云购买的域名才支持一键解析?常见问题。 2023-10-25 第三十一次正式发布。 本次更新说明如下: 新增OBS账单为什么会出现0.01元的计费?常见问题。 2023-10-16 第三十次正式发布。 本次更新说明如下: 刷新对象列表相关页面截图。 被委托账号或用户为什么无法上传下载KMS加密对象?章节增加注意事项内容。 新增分享对象时,OBS的SSE-OBS服务端加密方式是否需要授权特殊权限?常见问题。 2023-10-09 第二十九次正式发布。 刷新如何批量删除桶中大量对象或清空桶?章节。 刷新我在什么场景下需要使用生命周期管理?章节。 新增配置桶加密方式后,OBS的服务端加密会对历史对象进行加密吗?章节。 新增OBS的服务端加密会收取加密的费用吗?章节。 新增OBS的SSE-KMS服务端加密方式是否支持匿名访问?章节。 2023-07-31 第二十八次正式发布。 刷新OBS上传下载速率的影响因素有哪些?章节。 2023-07-17 第二十七次正式发布。 刷新了如何访问或下载已加密的对象?的答案。 2023-06-16 第二十六次正式发布。 新增常见问题为什么OBS的云监控指标看不到5xx状态码统计数? 2023-05-30 第二十五次正式发布。 本次更新说明如下: 刷新了计费相关中升配资源包的相关答案。 2023-04-26 第二十四次正式发布。 本次更新说明如下: 新增了安全性的相关问题及答案。 2023-03-03 第二十三次正式发布。 本次更新说明如下: 更新了部分答案描述。 2020-05-19 第二十二次正式发布。 本次更新说明如下: 调整问题分类。 2019-08-22 第二十一次正式发布。 本次更新说明如下: 更新了部分答案描述。 2019-08-14 第二十次正式发布。 本次更新说明如下: 更新了跨区域复制相关问题的答案。 2019-07-18 第十九次正式发布。 本次更新说明如下: 新增了持久性和可用性相关的问题及答案。 2019-06-13 第十八次正式发布。 本次更新说明如下: 更新了批量上传的答案。 2019-05-22 第十七次正式发布。 本次更新说明如下: 新增了数据丢失问题及答案。 新增了已删除数据可否恢复问题及答案。 2019-04-30 第十六次正式发布。 本次更新说明如下: 更新了如何处理碎片的问题及答案。 新增了自定义域名绑定的相关问题及答案。 2019-03-29 第十五次正式发布。 本次更新说明如下: 更新了文档结构内容和问题及答案。 2019-01-29 第十四次正式发布。 本次更新说明如下: 增加了如何处理碎片的问题及答案。 2018-11-30 第十三次正式发布。 本次更新说明如下: 增加了其他用户访问OBS数据的问题及答案。 2018-11-16 第十二次正式发布。 本次更新说明如下: 增加了是否支持修改对象名的问题及答案。 增加了是否支持桶间文件复制的问题及答案。 增加了是否支持桶间文件移动的问题及答案。 2018-10-31 第十一次正式发布。 本次更新说明如下: 增加OBS是否支持HTTPS的问题及答案。 增加了OBS是否支持冗余备份的问题及答案。 2018-10-19 第十次正式发布。 本次更新说明如下: 更新了多版本控制的答案。 2018-08-15 第九次正式发布。 本次更新说明如下: OBS收费增加了CDN回源流量包。 2018-06-30 第八次正式发布。 本次更新说明如下: 增加了标签相关问题。 2018-04-30 第七次正式发布。 本次更新说明如下: 更新了批量上传问题答复。 2018-04-15 第六次正式发布。 本次更新说明如下: 增加跨区域复制。 软件框架切换,刷新图片。 2018-03-16 第五次正式发布。 本次更新说明如下: 增加流量监控功能。 软件框架切换,刷新图片。 增加了对象级存储类别。 增加了修改桶和对象的存储类别的功能。 购买指南中删除计费介绍和计费案例,详细的服务资费费率标准请参见价格说明。 2017-12-20 第四次正式发布。 本次更新说明如下: 在《控制台指南》中增加如下内容: “配置事件通知”中增加多项目。 “出现“客户端与服务器的时间相差15分钟”的报错”章节。 创建桶时增加了一键式设置桶策略功能。 2017-10-30 第三次正式发布。 本次更新说明如下: 在《控制台指南》的“查看桶的基本信息”中增加“Endpoint”和“访问域名”。 在《控制台指南》的“通过对象(URL)访问对象”中修改URL的格式。 在《控制台指南》的“配置桶策略”中增加了一键式配置通用策略。 在《控制台指南》的“异常处理”中增加“配置事件通知失败”章节。 在《购买指南》中删除余额小于100的限制。 在《快速入门》的“注册云服务账号”中删除“隐私保护”。 2017-09-28 第二次正式发布。 本次更新说明如下: 在《产品简介》中增加“文档导读”。 在《快速入门》中增加“相关操作”。 在《控制台指南》中修改“配置桶策略”章节、新增“动作和条件的详细解释”章节。 2017-08-20 第一次正式发布。
  • IAM委托 IAM委托 通过创建委托,可以将资源共享给其他帐号,或委托更专业的人或团队来代为管理资源。被委托方使用自己的帐号登录后,切换到委托方帐号,即可管理委托方委托的资源,避免委托方共享自己的安全凭证(密码/密钥)给他人,确保帐号安全。 操作步骤 登录统一身份认证服务控制台。 在统一身份认证服务的左侧导航窗格中,选择“委托”页签,单击右上方的“创建委托”。 图1 创建委托 在创建委托页面,设置“委托名称”。 委托给云服务RFS 图2 创建委托 此处“委托名称”为用户自定义。 此处如已使用“op_svc_iac”进行注册,建议修正为云服务“RFS”。 单击“下一步”,进入给委托授权页面,给对应委托授权: 图3 委托授权 可以筛选具体权限授权给委托 图4 选择策略 具体授权给委托哪些详细权限需要用户自己决定(华为云最佳实践不建议自动帮用户创建授予Tenant Administrator权限的委托)最佳实践为用户资源栈中可能需要使用到的资源进行授予管理权限(包括读写操作) 设置授权范围可以选择所有资源或选择定义region进行授权 图5 权限范围 单击“确定”,委托创建完成。 图6
  • 身份认证与访问控制 身份认证 租户使用AOS服务通常有控制台访问和API调用两种方式:控制台访问和API调用。 1.控制台身份认证方式 AOS对接了统一身份认证服务(Identity and Access Management,IAM)。AOS租户身份认证与访问控制通过IAM权限控制。 统一身份认证(Identity and Access Management,简称IAM)是华为云提供权限管理的基础服务,可以帮助AOS服务安全地控制访问权限。通过IAM,可以将用户加入到一个用户组中,并用策略来控制他们对AOS资源的访问范围。IAM权限可以通过细粒度定义允许和拒绝的访问操作,以此实现AOS资源的权限访问控制。 2.API调用身份认证方式 所有的API接口调用均需要经过认证的请求才可以访问成功,经过认证的请求需要包含一个签名值,该签名值以请求者的访问密钥(AK/SK)作为加密因子,结合请求体携带的特定信息计算而成。通过访问密钥(AK/SK)认证方式进行认证鉴权,即使用Access Key ID(AK)/Secret Access Key(SK)加密的方法来验证某个请求发送者身份。关于访问密钥的详细介绍及获取方式,请参见如何获取AK/SK?(账号)。 父主题: 安全
  • 什么是资源编排 资源编排是应用编排服务新增的完全支持业界事实标准Terraform(HCL + Provider)的终态编排引擎,用于管理系统资源及服务资源(一切可定位、描述的物理或者逻辑实体,例如数据库,VPC,流水线,数据库,IAM中的Role)。资源编排采用业界开放生态HCL语法的模板,它按照模板自动化部署指定的云服务资源。 资源编排聚焦于华为云所用资源的自动化批量构建,帮助用户用高效、安全以及一致的方式新建、管理和升级所需资源,提升资源管理效率,降低资源管理变更带来的安全风险。 产品架构 父主题: 资源编排
  • 基本概念 概念名称 描述 资源 一个云服务可以有多种资源。资源可以是VPC,虚拟机,也可以是某种微服务应用,或者是类似于安全策略,DNS记录等高层数据模型。 模板 模板是一个HCL语法文本描述文件,支持tf、tf.json、zip包文件格式,用于描述您的云资源。资源编排根据模板完成各种云资源的创建。 资源栈 资源栈是云服务资源的集合。资源栈将模板描述的所有云服务资源作为一个整体来进行创建、删除、更新、查询等。 执行计划 执行计划提供对资源栈变化的预览。这个执行计划展示了当前模板与线上资源的对比变化,清晰地展示了资源编排对资源与属性将要执行的操作(如新增、修改、删除等)。用户可以预览这个计划,在确认符合预期后,再执行这个计划。资源编排就会完成模板定义资源的创建、变更等。 ↵ 父主题: 资源编排
  • 产品优势 声明性:用户仅需直观描述所需资源的最终状态,屏蔽复杂的申请过程,降低资源管理的复杂度。 幂等:资源描述代码多次调用效果幂等,可确保不重复申请资源。 安全可靠:可视化的审计、安全、和合规控制策略,杜绝资源变更操作带来的安全风险。 生态丰富:南向生态支持华为云主流服务(60+云服务、240+资源对象、100+资源查询对象,详情参见:资源支持清单),开箱即用;北向完全兼容HCL语法,无学习成本。 简单易用:向导式操作配合完善的资料、样例辅助体系,五步即可完成资源管理操作。 服务全托管全云化:用户不需要安装任何软件、不需要准备执行机、不需要管理底层文件和数据就可以完成资源的自动化管理。 自动回滚:资源部署失败自动将所有资源状态返回上一个成功部署的状态。 父主题: 资源编排
  • 认证证书 华为云服务及平台通过了多项国内外权威机构(ISO/SOC/PCI等)的安全合规认证,用户可自行申请下载合规资质证书。华为云还提供以下资源来帮助用户满足合规性要求。 行业 合规性说明 ISO/IEC 华为云 ISO/IEC 27001 合规性说明 HIPAA 华为云 HIPAA 合规性说明 LGPD 巴西LGPD合规性说明 PDPA 马来西亚PDPA合规性说明 新加坡PDPA合规性说明 泰国 PDPA 合规性说明 中国澳门PDPA 合规性说明 PCI DSS 华为云 PCI DSS 实践指南 PDPO 中国香港PDPO 合规性说明 POPIA 南非 POPIA 合规性说明 CSA CSA CCM 合规性说明(CSA CAIQ v3.1) PDPL 阿根廷 PDPL 合规性说明 MPA MPA 合规性说明通用指南 MPA 合规性说明——应用程序及云端分布式环境安全指南 金融行业 新加坡金融行业监管要求合规性说明 中国香港金融行业监管要求合规性说明 泰国金融行业监管遵从性指导 马来西亚金融行业监管遵从性指导 巴西金融行业监管遵从性指导 阿根廷金融行业监管遵从性指导 南非金融行业监管遵从性指导 证券及期货 中国香港证券及期货行业监管遵从性指导 保险 中国香港保险行业监管遵从性指导 隐私 印尼隐私合规性说明 另外,华为云还提供了以下销售许可证及软件著作权证书,供用户下载和参考。 销售许可证 云堡垒机 CBH DDoS防护 ADS Web应用防火墙 WAF 企业主机安全 HSS 数据库安全 DBSS 软件著作权证书 态势感知 SA 企业主机安全 HSS 容器安全 CGS DDoS防护 ADS Web应用防火墙 WAF 漏洞扫描服务 VSS 数据库安全 DBSS 数据安全中心 DSC 数据加密服务 DEW - 父主题: 安全
  • 产品功能 支持自动化编排资源 AOS提供自动化的编排能力,支持编排华为云主流云服务,具体请参见支持编排的云服务。AOS还提供资源规划、应用设计、部署、变更等生命周期管理等相关服务,通过自动化降低运维成本。 支持应用与云服务资源混合编排 您可通过标准语言(YAML/JSON)统一描述所需基础资源、应用系统、应用上层配套服务及三者之间的关系。根据统一描述,可一键式按照定义的依赖顺序,自动完成资源开通、应用部署、应用服务加载。对于部署的资源和应用,可以统一的进行管理:删除、扩缩容、复制、迁移等。
  • 应用上云 应用场景: 应用上云时,很多工作需要重复操作,例如环境的销毁和重建、在扩容的场景下重复完成多个新实例的配置等。同时应用上云时,很多操作非常耗时,例如创建数据库、创建虚拟机等,都需等待分钟级别的时间。一旦需要串行创建多个耗时任务,就需要您持续等待一段时间。而此时如果可以将整个流程自动化,可以减少您的等待过程,完成其他更有价值的任务。 价值: 使用应用编排服务,通过模板对应用及应用所需资源进行统一描述,一键式自动完成部署或销毁操作。您可以同步进行资源规划、应用定义和业务部署,提升应用上云的效率。 优势: 简单易用 通过编写模板,即可完成应用设计与资源的规划,使业务的组织和管理变得轻松。 高效执行 一键式自动完成部署或销毁操作,省去繁琐的人工操作。 快速复制 同一模板可以多次重复使用,自动化构建相同的应用与资源到不同的数据中心。 图1 应用上云场景
  • ISV业务发放 应用场景: 独立软件开发商(ISV)需要让客户快速将软件服务部署到云上,供其自身的客户进行使用。ISV传统的软件发放的方式是在其官网提供软件的代码下载及平台搭建指南。但该方式需要客户自建资源与组网,准备时间长,成本高。并且安装过程完全手动,耗时易出错,软件的版本更新都需要客户自己手动操作,运维压力大。 价值: 应用编排服务的模板提供了标准化的资源和应用交付方式。ISV可以通过将软件服务模板化,通过应用编排服务的一键部署能力,对自身客户进行业务发放。 优势: 快速发放 通过模板,自动化完成软件的部署与资源的开通,用户只需一键部署,分钟级完成。 准确创建 ISV软件本身及所需的云服务资源都通过模板固化,减少人工失误带来的影响。 统一维护 软件的生命周期管理可以统一通过AOS服务实现,一键完成软件的升级、伸缩等操作。 图2 ISV业务发放场景
  • 批量创建 应用场景: 如果您需要创建一个包含10个不同规格的弹性云服务器实例的Web应用,或者您需要一次创建10个数据库实例时,您需要一个个单独创建这些资源,然后必须将这些资源配置为结合使用,才能确保应用顺利启动,增加了使用云资源的复杂性和时间成本。 价值: 应用编排服务将大批量的、不同服务、不同规格的资源实例,统一定义在模板中,一键完成创建,实现资源的快速部署和灵活配置。 优势: 快速部署 通过应用编排服务自动化并发创建多个云服务资源,或不同规格的同一服务资源。 灵活配置 丰富的模板语法,支持根据不同场景灵活配置创建资源的种类与规格。 自动回退 批量创建过程中如果失败,用户可选择自动回退,以节省资源成本。 图3 批量创建场景
共100000条