云服务器内容精选

  • 使用场景 场景挑战 设备采集的数据信息量庞大但只需部分有效数据。部署在节点下的设备需要在本地判断情况以及时进行控制。 设备使用的协议不能接入边缘计算。 节点下的IT子系统众多,接入时不便于管理,配置繁琐。子系统采集的数据需要传输到用户的北向应用。 解决方案 通过开发集成ModuleSDK的应用,您可以: 使用ModuleSDK提供的AppClient开发OT应用对需要上传到云端的信息进行过滤上传。OT应用可以在本地对设备进行命令的下发。 使用ModuleSDK提供的DriverClient开发驱动应用进行协议转换。 使用ModuleSDK提供的ItClient开发IT应用实现子系统与云端配置的自动同步,也可以实现云端对子系统的配置管理。云端可以通过IT应用实现对子系统数据的采集。
  • 简介 为解决用户自定义处理设备数据以及自定义协议设备快速接入IOT平台的诉求,华为IoT边缘提供ModuleSDK,用户可通过集成SDK让设备以及设备数据快速上云。IoT边缘平台应用功能有自定义处理设备数据(即数据处理),自定义协议设备快速接入(即协议解析),IT子系统接入(即IT应用),并且支持容器化部署和安装包部署的方式。 集成ModuleSDK开发的应用被称为插件应用,其最终将被通过云部署到边缘节点。 集成ModuleSDK的应用分为: OT应用:数据处理类型的应用,实现了总线回调接口,IoT边缘云服务为OT应用提供总线对接能力、设备反向控制(命令)能力。 驱动应用:协议转换类型的应用,可将使用自定义协议的设备接入边缘计算。 IT应用:实现工业子系统接入的应用,实现了对子系统配置同步、反向调用接口、以及数据采集能力。 集成了SDK的应用称为插件,华为云市场提供了插件上架功能。您可以将你开发的集成了SDK的应用上传到华为云市场来获取收益,也可以在华为云市场下载使用第三方插件。
  • 创建多个接入配置的操作步骤 在接入规则页签,支持创建批量接入的任务。 支持批量创建接入,单击“批量接入”,进入配置详情页面,请参考表4。 结构化解析配置功能仅支持白名单用户使用,详细操作请参考ICAgent采集配置。有需要可提交工单申请使用,请参考提交工单。 表4 批量接入设置 类型 操作 说明 基本配置 接入类型 选择云主机 ECS-文本日志。 接入配置数量 在输入框填写接入配置数量,单击“添加接入配置”。 在接入配置下方默认已有1个接入配置,最多支持再添加99个数量,因此支持同时添加100个接入配置。 接入配置 接入列表 左侧显示接入配置的信息,最多支持添加99个配置。 右侧显示配置接入的内容,详细请参考创建单个接入配置的操作步骤进行设置。 一个接入配置设置完成后,单击“应用于其他接入规则”即可将该接入配置复制到其他接入配置。 单击参数检查,检查成功后,单击“提交”,批量接入设置完成。 例如添加了4个接入配置,批量创建成功后,在接入规则页签下方,就会显示4条接入配置数量。 (可选)支持对接入配置任务进行以下操作: 勾选多个已创建成功的接入配置,单击“批量编辑”进入配置详情页面,通过选择不同接入类型,修改对应的接入配置信息。 勾选多个已创建成功的接入配置,单击开启或关闭按钮。接入配置状态关闭后不会继续采集日志。 勾选多个已创建成功的接入配置,单击删除按钮即可批量删除接入配置。
  • 采集配置 在使用主机接入完成日志接入时,采集配置的具体配置如下: 采集配置名称:自定义采集配置名称,长度范围为1到64个字符,只支持输入英文、数字、中文、中划线、下划线以及小数点,且不能以小数点、下划线开头或以小数点结尾。 导入旧版配置:将旧版主机接入配置导入到新版日志接入中。具体操作请参见如何升级使用新版日志接入。 若是新安装云日志服务的场景,页面没有显示“导入旧版配置”,则表示不需要导入旧版配置,直接新建配置即可。 若是升级云日志服务的场景,页面显示“导入旧版配置”,若需要旧版配置里的主机日志路径,可以选择导入旧版配置,或者直接新建配置。 路径配置:添加您需要收集的日志路径,LTS将按照配置的路径进行日志采集。 采集路径支持递归路径,**表示递归5层目录。 示例:采集路径配置为 /var/logs/**/a.log,日志匹配如下: /var/logs/1/a.log /var/logs/1/2/a.log /var/logs/1/2/3/a.log /var/logs/1/2/3/4/a.log /var/logs/1/2/3/4/5/a.log 以上示例中的/1/2/3/4/5/,表示/var/logs目录中,往里递归的5个目录层级,在这5个目录层级中只要存在a.log,都能进行日志匹配。 采集路径中只能出现一次**,不能出现两个及以上。正确示例:/var/logs/**/a.log;错误示例:/opt/test/**/log/**。 采集路径中第一个层级不允许为**(避免误采集系统文件),错误示例:/**/test。 采集路径支持模糊匹配,匹配目录或文件名中的任何字符。 如果配置了C:\windows\system32类似的日志采集路径,但无法采集日志,请尝试打开WAF物理防火墙后重新配置。 示例1:采集路径配置为 /var/logs/*/a.log,表示/var/logs/目录下,任何一个目录中存在a.log,都能进行日志匹配,例如: /var/logs/1/a.log /var/logs/2/a.log 示例2:采集路径配置为 /var/logs/service-*/a.log,日志匹配示例: /var/logs/service-1/a.log /var/logs/service-2/a.log 示例3:采集路径配置为 /var/logs/service/a*.log,日志匹配示例: /var/logs/service/a1.log /var/logs/service/a2.log 采集路径如果配置的是目录,示例:/var/logs/,则只采集目录下后缀为“.log”、“.trace”和“.out”的文件。 如果配置的是文件名,则直接采集对应文件,只支持内容是文本格式的文件。可以通过file -i 文件名命令,查询文件格式。 添加自定义绕接规则,ICAgent目前是通过文件名规则来判断是否为绕接文件,如果您的绕接规则不符合内置类型时,可以通过单击“添加自定义绕接规则”来进行匹配,避免重复采集和绕接时的日志丢失。 内置类型为{basename}{连接符}{绕接标识}.后缀,{basename}.{后缀}{连接符}{绕接标识}。其中连接符为-._绕接标识为非字母符号,后缀为字母。 自定义绕接规则为{basename}+绕接文件的特征正则表达式组成匹配规则。例如您的日志文件名称为/opt/test.out.log,绕接后的文件名为test.2024-01-01.0.out.log,test.2024-01-01.1.out.log,因此在路径配置时,采集路径为/opt/*.log,绕接规则为{basename}\.[-0-9\.].out.log 请注意您的敏感信息是否在收集范围内。 当主机选择“Windows主机”时,如需采集系统日志,需要在“采集配置”环节,开启“采集Windows事件日志”。 windows事件日志采集不能重复配置,即相同主机下,即使跨日志组和日志流,也只能配置一次。 LTS暂不支持采集PostgreSQL(数据库)实例的日志,目前只支持采集安装在ECS(主机)实例的日志。 日志采集路径不能重复配置,即相同主机的同一个日志采集路径不能重复配置,否则可能会导致日志采集异常。 相同主机的同一个日志采集路径,如果在AOM进行了配置,则不能在LTS重复配置。 配置采集的文件最后修改时间和当前时间差如果已超过12小时,则不会采集。 设置采集黑名单:LTS支持对日志进行过滤采集,即通过设置黑名单,在采集时过滤指定的目录或文件。指定按目录过滤,可过滤掉该目录下的所有文件,但是不能过滤该目录下文件夹里的日志文件。 目录和文件名支持完全匹配,也支持模糊匹配,具体可参考路径配置内容进行设置。 当设置的黑名单与配置的采集路径重复或者有重合时,优先过滤掉黑名单设置的文件。 已经加了黑名单的日志,新建日志接入也无法采集黑名单里的日志,除非在设置采集黑名单下方删除采集路径,才能重新采集。 采集Windows事件日志:当选择Windows主机采集日志时,需要开启“采集Windows事件日志”,配置如下参数: 表1 采集Windows事件日志参数 名称 说明 日志类型 日志类型有系统、应用程序、安全和启动。 首次采集时间偏移量 如设置为7天,表示从采集开始时间前7天内的日志(7天前的日志被忽略),该时间仅在首次配置采集生效,确保不会重复采集。最大支持设置为7天。 事件等级 事件等级有information、warning、error、critical和verbose。根据Windows事件等级过滤采集。仅支持Windows Vista及以上的操作系统。 开启结构化解析配置,详细操作请参考ICAgent采集配置。 需要ICAgent 5.12.147及以上版本,其优点是成本更低,支持组合解析,一个日志流的每个采集配置可以配置不同的结构化解析规则。 结构化解析配置功能仅支持白名单用户提交工单申请使用。详细操作请参考提交工单。 开通白名单后,若已经配置了云端结构化解析,请先删除后再配置ICAgent结构化解析。 图2 ICAgent结构化解析配置 其他配置。 表2 其他配置 名称 说明 最大目录深度 最大目录深度为5层。 该配置控制日志采集的最大目录深度,ICAgent不会采集所在目录层级超过指定最大目录深度的日志文件。当你目标采集路径包含模糊匹配时,建议配置合适的最大目录深度,避免ICAgent性能浪费。 日志拆分 云日志服务支持对日志进行拆分。 当日志大小超过500KB时,开启日志拆分按钮,则单行日志会被拆分为多行采集。例如:日志大小为600KB,被拆分为2行日志采集,第一行500KB,第二行100KB。 当日志大小超过500KB时,未开启日志拆分按钮,则单条日志大小限制不超过500KB,超过限制部分会被截断丢弃。 采集二进制文件 云日志服务支持采集二进制文件。 您可以通过命令(file -i 文件名)查看文件类型,如果包含charset=binary,那么该日志文件就是二进制文件。 当日志的文件类型为二进制时,开启采集二进制文件按钮,则对接入的二进制文件日志进行采集,但仅支持UTF8编码的字符串,非UFT8编码的字符在LTS控制台页面会显示乱码。 当日志的文件类型为二进制时,未开启采集二进制文件按钮,则对接入的二进制文件日志停止采集,开启后即可进行采集。 日志文件编码 日志文件编码为UTF-8。 采集策略 采集策略支持增量或全量。 增量采集:ICAgent采集新文件时,从文件的末尾开始读。 全量采集:ICAgent采集新文件时,从文件的开头开始读。 日志格式、日志时间具体说明如下: 表3 日志采集信息 名称 说明 日志格式 单行日志:采集的日志文件中,如果您希望每一行日志在LTS界面中都显示为一条单独的日志数据,则选择单行日志。 多行日志:采集的日志中包含像java异常的日志,如果您希望多行异常的日志显示为一条日志,正常的日志则每一行都显示为一条单独的日志数据,则选择多行日志,方便您查看日志并且定位问题。 日志时间 系统时间:表示系统当前时间,默认为日志采集时间,每条日志的行首显示日志的采集时间。 说明: 日志采集时间:ICAgent采集日志,并且发送到云日志服务的时间。 日志打印时间:系统产生并打印日志的时间。ICAgent采集日志并发送日志到云日志平台的频率为1秒钟。 采集日志时间限制:系统时间的前后24小时内。 时间通配符:用日志打印时间来标识一条日志数据,通过时间通配符来匹配日志,每条日志的行首显示日志的打印时间。 如果日志中的时间格式为:2019-01-01 23:59:59.011,时间通配符应该填写为:YYYY-MM-DD hh:mm:ss.SSS。 如果日志中的时间格式为:19-1-1 23:59:59.011,时间通配符应该填写为:YY-M-D hh:mm:ss.SSS。 说明: 如果日志中不存在年份信息,则云日志会自动补齐年份数据为当前年份数据。 填写示例: YY - year (19) YYYY - year (2019) M - month (1) MM - month (01) D - day (1) DD - day (01) hh - hours (23) mm - minutes (59) ss - seconds (59) SSS - millisecond(999) hpm - hours (03PM) h:mmpm - hours:minutes (03:04PM) h:mm:sspm - hours:minutes:seconds (03:04:05PM) hh:mm:ss ZZZZ (16:05:06 +0100) hh:mm:ss ZZZ (16:05:06 CET) hh:mm:ss ZZ (16:05:06 +01:00) 分行模式 日志格式选择多行日志时,需要选择分行模式,分行模式选择“日志时间”时,是以时间通配符来划分多行日志;当选择“正则模式”时,则以正则表达式划分多行日志。 正则表达式 此配置是用来标识一条日志数据的正则表达式。日志格式选择“多行日志”格式后且“分行模式”已选择“正则模式”后需要设置。 时间通配和正则表达式均是从每行日志的开头进行严格匹配,如果匹配不上,则会默认使用系统时间上报,这样可能会和文件内容中的时间不一致。如果没有特殊需求,建议使用单行日志-系统时间模式即可。
  • 使用场景 用户在云原生服务中心订阅服务或者上传私有服务后并部署实例,云原生服务中心会自动安装服务插件,用户在后台进行kubectl命令操作时误删除了oc-operator的deployment,导致后续无法继续安装云原生服务。 oc-operator服务是云原生服务中心用于安装operator或者helm等服务的插件,其负责对应服务的生命周期管理如安装、升级、删除等操作,因此建议用户不要在后端手动删除或修改oc-operator的pod或者deployment类型资源。
  • 操作步骤 登录kubernetes集群后台节点,确保节点可以正常执行kubectl命令。 执行如下命令,查询OSC插件部署helm资源。 kubectl get secret -nosc-oc 执行如下命令,删除OSC服务插件secret资源。 kubectl delete secret -nosc-oc sh.helm.release.v1.{cceaddon}-operator-chef.{v1} 执行如下命令,删除插件configmap资源。 kubectl delete configmap -nosc-oc crd-dependency 执行如下命令,删除ServiceAccount资源。 kubectl delete ServiceAccount -nosc-oc oc-operator-serviceaccount 执行如下命令,删除ClusterRole资源。 kubectl delete ClusterRole aggregate-oc-edit aggregate-oc-view system:controller:operator-chef 执行如下命令,删除ClusterRoleBinding资源。 kubectl delete ClusterRoleBinding oc-operator-role-binding 执行如下命令,删除插件crd资源。 kubectl delete crd bundles.osc.huaweicloud.com kubectl delete crd operators.osc.huaweicloud.com
  • 安装nvidia-fabricmanager服务 A100/A800 GPU支持 NvLink & NvSwitch,若您使用多GPU卡的机型,需额外安装与驱动版本对应的nvidia-fabricmanager服务使GPU卡间能够互联,否则可能无法正常使用GPU实例。 本文以驱动版本470.103.01为例,您可参考以下步骤进行安装,请根据实际情况需要替换驱动版本。 登录需要安装nvidia-fabricmanager服务的GPU节点,该节点需绑定EIP用以下载nvidia-fabricmanager服务。 安装与驱动版本对应的nvidia-fabricmanager服务,您可通过官方下载操作系统和驱动版本对应的安装包。 CentOS操作系统 以CentOS 7为例: driver_version=470.103.01 wget https://developer.download.nvidia.cn/compute/cuda/repos/rhel7/x86_64/cuda-drivers-fabricmanager-${driver_version}-1.x86_64.rpm rpm -ivh nvidia-fabric-manager-${driver_version}-1.x86_64.rpm Ubuntu等其他操作系统 以Ubuntu 18.04为例: driver_version=470.103.01 driver_version_main=$(echo $driver_version | awk -F '.' '{print $1}') wget https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu1804/x86_64/nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb dpkg -i nvidia-fabricmanager-${driver_version_main}_${driver_version}-1_amd64.deb 启动nvidia-fabricmanager服务。 systemctl enable nvidia-fabricmanager systemctl start nvidia-fabricmanager 查看nvidia-fabricmanager服务状态。 systemctl status nvidia-fabricmanager
  • 约束与限制 下载的驱动必须是后缀为“.run”的文件。 仅支持Nvidia Tesla驱动,不支持GRID驱动。 安装或重装插件时,需要保证驱动下载链接正确且可正常访问,插件对链接有效性不做额外校验。 gpu-device-plugin插件仅提供驱动的下载及安装脚本执行功能,插件的状态仅代表插件本身功能正常,与驱动是否安装成功无关。 如您使用A100/A800的多GPU卡机型,您需要手动安装与版本驱动对应的nvidia-fabricmanager服务才可以正常使用,详情请参见安装nvidia-fabricmanager服务。
  • 安装插件 登录UCS控制台,单击集群名称进入集群,在左侧导航栏中选择“插件中心”。 在“可安装插件”中找到gpu-device-plugin,单击“安装”。 在安装插件页面,填写插件配置。 插件规格:可配置“默认”或“自定义”规格,请根据实际情况选择。 容器:选择“自定义”规格时支持设置。 Nvidia驱动:您可使用CCE提供的驱动地址或手动填写自定义Nvidia驱动的地址,集群下全部GPU节点将使用相同的驱动。 GPU虚拟化功能仅支持470.57.02、470.103.01、470.141.03、510.39.01、510.47.03版本的GPU驱动。 建议您使用CCE提供的驱动地址,以满足驱动版本的要求。 如果下载链接为公网地址,例如地址为nvidia官网地址https://us.download.nvidia.com/tesla/470.103.01/NVIDIA-Linux-x86_64-470.103.01.run,则各GPU节点均需要绑定EIP。获取驱动链接方法请参考获取驱动链接-公网地址。 若下载链接为OBS上的链接,无需绑定EIP 。获取驱动链接方法请参考获取驱动链接-OBS地址。 请确保Nvidia驱动版本与GPU节点适配。 更改驱动版本后,需要重启节点才能生效。 对于linux 5.x内核系统,如Huawei Cloud EulerOS 2.0或ubuntu 22.04,建议使用470及以上版本驱动。 图1 安装gpu-device-plugin 驱动选择:若您不希望集群中的所有GPU节点使用相同的驱动,CCE支持以节点池为单位安装不同的GPU驱动。 插件将根据节点池指定的驱动版本进行安装,仅对节点池新建节点生效。 新建节点更新驱动版本后,需重启节点生效。非新建节点不支持更新驱动版本。 插件卸载会自动删除已安装的GPU驱动。 GPU虚拟化:选择开启GPU虚拟化,支持GPU单卡的算力、显存分割与隔离。 若集群中未安装volcano插件,将不支持开启GPU虚拟化,您可单击“一键安装”进行安装。如需配置volcano插件参数,请单击“自定义安装”,详情请参见volcano。 若集群中已安装volcano插件,但插件版本不支持使用GPU虚拟化,您可单击“一键升级”进行升级。如需配置volcano插件参数,请单击“自定义升级”,详情请参见volcano。 单击“安装”,安装gpu-device-plugin插件的任务即可提交成功。
  • 获取驱动链接-公网地址 登录CCE控制台。 创建节点,在节点规格处选择要创建的GPU节点,选中后下方显示的信息中可以看到节点的GPU显卡型号。 登录到nvidia网站。 如图2所示,在“NVIDIA驱动程序下载”框内选择对应的驱动信息。其中“操作系统”必须选Linux 64-bit。 图2 参数选择 驱动信息确认完毕,单击“搜索”按钮,会跳转到驱动信息展示页面,该页面会显示驱动的版本信息如图3,单击“下载”到下载页面。 图3 驱动信息 获取驱动软件链接方式分两种: 方式一:如图4,在浏览器的链接中找到url=/tesla/470.103.01/NVIDIA-Linux-x86_64-470.103.01.run的路径,补齐全路径为https://us.download.nvidia.com/tesla/470.103.01/NVIDIA-Linux-x86_64-470.103.01.run,该方式节点需要绑定EIP 。 方式二:如图4,单击“下载”按钮下载驱动,然后上传到OBS,获取软件的链接,该方式节点不需要绑定EIP。 图4 获取链接
  • 训练输出保存结构说明 ModelArts训练作业的模型输出和日志信息会定时同步到指定的OBS中,本示例中模型输出路径和日志输出路径分别为f"{default_obs_dir}/mindspore_model/output/"和f"{default_obs_dir}/mindspore_model/logs/",用户可以在OBS中查看训练输出信息。 本示例中训练输出保存在OBS的目录结构如下所示: ${your_bucket} └── intermidiate ├── dataset │ └── flower_photos │ └── flower_photos.zip └── mindspore_model ├── logs │ └── xxx-xxx-xxx--0.log ├── output │ └── 20220627-105226-resnet50-224 └── mindspore-image-models.zip
  • 提交训练作业常见问题 报错信息:Exception: You have attempted to create more buckets than allowed 原因分析:由于桶的数量多于限额,无法自动创建。 解决方法:用户可以删除一个桶,或者直接指定一个已存在的桶(修改变量obs_bucket的值)。 报错信息:"errorMessage":"The number of namespaces exceeds the upper limit"或"namespace is invalid" 原因分析:SWR组织数限额,SWR组织默认最多只能创建5个组织。 解决方法:用户可以删除一个SWR组织,或者直接指定一个已存在的SWR组织(修改变量image_organization的值)。 报错信息:standard_init_linux.go:224: exec user process caused "exet format error" 原因分析:可能由于训练规格错误导致训练作业卡死。 解决方法:请参考说明查询资源规格。 报错信息:报错镜像失败,报错:401,'Unauthorized',b'{errors":[{"errorCode":"SVCSTG.SWR.4010000",errorMessage":"Authenticate Error",……}] 原因分析:远程连接Notebook时需要输入鉴权信息。 解决方法:传入AK,SK信息。 1 2 3 4 5 6 # 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 __AK = os.environ["HUAWEICLOUD_SDK_AK"] __SK = os.environ["HUAWEICLOUD_SDK_SK"] # 如果进行了加密还需要进行解密操作 session = Session(access_key=__AK,secret_key=__SK, project_id='***', region_name='***')
  • 步骤5:使用SDK提交训练作业 本地调测完成后可以提交训练作业。因为数据在Notebook中,设置InputData中“is_local_source”的参数为“True”,会自动将本地数据同步上传到OBS中。 步骤如下: 在“/home/ma-user/work/models/official/cv/resnet/”下创建train_notebook.py, 复制代码至train_notebook.py, 运行train_notebook.py,进行训练作业提交。 # train_notebook.py # 导入ModelArts SDK的依赖,并初始化Session,此处的ak、sk、project_id、region_name请替换成用户自己的信息 from modelarts.train_params import TrainingFiles from modelarts.train_params import OutputData from modelarts.train_params import InputData from modelarts.estimatorV2 import Estimator from modelarts.session import Session # 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 __AK = os.environ["HUAWEICLOUD_SDK_AK"] __SK = os.environ["HUAWEICLOUD_SDK_SK"] # 如果进行了加密还需要进行解密操作 session = Session(access_key=__AK,secret_key=__SK, project_id='***', region_name='***') # 样例中为了方便默认创建一个OBS桶,推荐将调测所需要传输的文件统一放到`${default_bucket}/intermidiate`目录下,也可以按照注释代码自行指定 obs_bucket = session.obs.get_default_bucket() print("Default bucket name: ", obs_bucket) default_obs_dir = f"{obs_bucket}/intermidiate" #default_obs_dir = "obs://your-bucket-name/folder-name" # 本地的工程代码文件夹路径 code_dir_local = "/home/ma-user/work/models/official/cv/resnet/" #@param {type:"string"} # 代码的启动文件名称 boot_file = "train.py" #@param {type:"string"} train_file = TrainingFiles(code_dir=code_dir_local, boot_file=boot_file) # 本地数据集路径 local_data_path = "/home/ma-user/work/models/dataset/flower_photos" #@param {type:"string"} # 模型输出保存路径 output_local = "/home/ma-user/work/models/official/cv/resnet/output" #@param {type:"string"} # 模拟训练过程中模型输出回传至指定OBS的路径,需要以"/"结尾 obs_output_path = f"{default_obs_dir}/mindspore_model/output/" # 指定一个obs路径用于存储输出结果 output = [OutputData(local_path=output_local, obs_path=obs_output_path, name="output")] # 模拟训练过程中模训练日志回传至指定OBS的路径,需要以"/"结尾 log_obs_path = f"{default_obs_dir}/mindspore_model/logs/" # 训练所需的代码路径,代码会自动从本地上传至OBS code_obs_path = f"{default_obs_dir}/mindspore_model/" data_obs_path = f"{default_obs_dir}/dataset/flower_photos/" # sdk会将代码自动上传至OBS,并同步到训练环境 train_file = TrainingFiles(code_dir=code_dir_local, boot_file=boot_file, obs_path=code_obs_path) # 指定OBS中的数据集路径,会自动将local_path数据上传至obs_path,用户可以在代码中通过 --data_url接收这个数据集路径 input_data = InputData(local_path=local_data_path, obs_path=data_obs_path, is_local_source=True, name="data_url") from modelarts.service import SWRManagement image_organization = SWRManagement(session).get_default_namespace() # image_organization = "your-swr-namespace-name" print("Default image_organization:", image_organization) image_name = "mindspore-image-models-image" #@param {type:"string"} image_tag = "1.0.0" #@param {type:"string"} import os ENV_NAME=os.getenv('ENV_NAME') # 启动训练任务:使用user_command(shell命令)方式启动训练任务 # 注意:训练启动默认的工作路径为"/home/ma-user/modelarts/user-job-dir",而代码上传路径为"./resnet/${code_dir}"下 # --enable_modelarts=True 该代码仓已适配ModelArts estimator = Estimator(session=session, training_files=train_file, outputs=output, user_image_url=f"{image_organization}/{image_name}:{image_tag}", # 自定义镜像swr地址,由镜像仓库组织/镜像名称:镜像tag组成 user_command=f'cd /home/ma-user/modelarts/user-job-dir/ && /home/ma-user/anaconda3/envs/MindSpore/bin/python ./resnet/train.py --net_name=resnet50 --dataset=imagenet2012 --enable_modelarts=True --class_num=5 --config_path=./resnet/config/resnet50_imagenet2012_config.yaml --epoch_size=10 --device_target="Ascend" --enable_modelarts=True', # 执行训练命令 train_instance_type="modelarts.p3.large.public", # 虚拟资源规格,不同region的资源规格可能不同,请参考“Estimator参数说明”表下的说明查询修改 train_instance_count=1, # 节点数,适用于多机分布式训练,默认是1 #pool_id='若指定专属池,替换为页面上查到的poolId',同时修改资源规格为专属池专用的虚拟子规格 log_url=log_obs_path ) # job_name是可选参数,可不填随机生成工作名 job_instance = estimator.fit(inputs=[input_data], job_name="modelarts_training_job_with_sdk_by_command_v01") 表1 Estimator参数说明 参数名称 参数说明 session modelarts session training_files 训练代码的路径和启动文件 user_image_url 自定义镜像swr地址,由镜像仓库组织/镜像名称:镜像tag组成 user_command 执行训练命令 train_instance_type 本地调测'local'或云端资源规格。每个region的资源规格可能是不同的,可以通过下述说明查询对应的资源规格信息。 train_instance_count 节点数 log_url 日志输出路径 job_name 作业名称,不可以重复 train_instance_type表示训练的资源规格,每个region的资源规格可能是不同的。通过如下方法查询资源规格: 公共资源池执行如下命令查询 from modelarts.session import Session from modelarts.estimatorV2 import Estimator from pprint import pprint # 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 __AK = os.environ["HUAWEICLOUD_SDK_AK"] __SK = os.environ["HUAWEICLOUD_SDK_SK"] # 如果进行了加密还需要进行解密操作 session = Session(access_key=__AK,secret_key=__SK, project_id='***', region_name='***') info = Estimator.get_train_instance_types(session=session) pprint(info) 专属池规格 ModelArts专属资源池统一使用虚拟子规格,不区分GPU和Ascend。资源规格参考表2查询。 表2 专属资源池虚拟规格的说明 train_instance_type 说明 modelarts.pool.visual.xlarge 1卡 modelarts.pool.visual.2xlarge 2卡 modelarts.pool.visual.4xlarge 4卡 modelarts.pool.visual.8xlarge 8卡
  • 场景描述 云搜索服务默认安装了开源的OpenDistro告警插件(opendistro_alerting),用于提供数据满足特定条件时的通知功能。该插件包含Dashboard、Monitors、Destinations三个组件,CSS服务在Destinations组件中适配了消息通知服务SMN,且仅支持通过SMN服务作为目的端(Destination)进行告警消息发送。 本文主要介绍如何在Kibana中通过OpenDistro告警插件设置Elasticsearch集群的SMN告警功能。 开源OpenDistro告警插件Opendistro Alerting的官方指导文档请参见:OpenDistro-Monitors。
  • 概述 插件市场是数据采集插件集合,主要包括中间件插件和自定义插件。 中间件插件:是内置的中间件插件,不支持修改、删除和查看详情。目前中间件插件有如下几种: MYSQL:MySQL采集器 REDIS:Redis采集器 MONGODB:MongoDB采集器 KAFKA:Kafka采集器 NGINX:Nginx采集器 NODE:Node采集器 HAPROXY:HAProxy采集器 CONSUL:Consul采集器 ELASTICSEARCH:Elasticsearch采集器 POSTGRESQL:PostgreSQL采集器 RABBITMQ:RabbitMQ采集器 CUSTOM_EXPORTER:支持用户安装的Exporter采集器 自定义插件:是用户按需求自定义创建的插件。 父主题: 插件市场