华为云用户手册

  • 其它操作 增量托管配置添加后,您可以对在托管列表中对相关配置做如下操作: 编辑:修改已添加的增量托管配置。 开启:开启处于“关闭”状态中的增量托管配置。开启后,若托管配置中的OBS桶有新增音视频文件,则将会托管到点播服务,可在控制台的“音视频管理”页面查看到。 关闭:关闭处于“开启”状态的增量托管配置。关闭后,若托管配置中的OBS桶有新增音视频,则将不会托管到点播服务中。 删除:删除增量托管配置后,对应的OBS桶将与点播服务无托管关系。
  • 恢复归档文件 勾选一个或多个归档存储类型的音视频文件,单击“恢复归档文件”。 弹出“恢复已被归档的文件”,如图3所示。 图3 恢复已被归档的文件 参数配置说明,如表2所示。 表2 参数说明 参数 说明 恢复模式 归档存储恢复为标准存储的恢复模式。 包含如下选项: 快速取回模式:取回时间约为6分钟。 标准取回模式:取回时间约为3~5小时。 恢复方式 归档存储恢复为标准存储的恢复方式。 包含如下取值: 临时取回:临时取回音视频文件后,将会生成一份标准存储类型的对象副本。此时用户可以访问OBS的音视频文件资源,但是临时恢复的归档文件不允许执行转码操作。 该副本具备有效期,会在有效期结束后自动删除。实际音视频文件还是归档存储类型。 永久取回:永久取回音视频文件,变更为标准存储类型。 副本有效期 临时取回归档存储类型的音视频文件,生成标准存储类型对象副本的保存时间。 单位:天。取值范围:1-30。 单击“确定”,完成归档存储文件的恢复操作。 到达取回时间后,刷新音视频管理界面。 临时取回的方式,可以看到音视频的存储类型为“归档存储”。 永久取回的方式,可以看到音视频的存储类型为“标准存储”。
  • 功能特性 视频点播 为用户提供视频上传、 媒资管理、自动化转码处理、视频播放的一站式视频点播媒体服务,广泛地用于在线教育、门户网站、社交、直播回看等场景。视频点播的功能详情如表1所示。 表1 功能特性 类别 特性名称 特性说明 音视频上传 上传格式 视频文件格式:MP4,TS,MOV,MXF,MPG,FLV,WMV,AVI,M4V,F4V,MPEG,3GP,ASF,MKV,WEBM,M3U8、VOB、RM、MTS。其中,M3U8仅支持URL拉取方式上传。 音频文件格式:MP3,OGG,WAV,WMA,APE,FLAC,AAC,AC3,MMF,AMR,M4A,M4R,WV,MP2。 上传方式 支持控制台上传音视频,提供了本地上传和URL拉取方式。 提供上传API,同时也提供了Java、Python、Go、NodeJs、.Net、PHP和C++语言版的服务端SDK。 上传机制 每个上传的视频文件会拆分成多个小文件(默认20MB)上传到点播平台。 每个小文件的上传超时时间为60分钟。 媒资管理 分类管理 支持创建分类,按类管理上传的音视频文件,便于查找。 封面管理 支持首帧封面,由点播服务自动生成。 支持本地上传视频封面,支持JPG和PNG格式。 支持通过截图功能设置封面。 字幕管理 支持上传SRT格式,文字编码格式为UTF-8的字幕文件。 视频发布 上传的视频发布之后,会生成特定的URL,用户可以通过URL观看视频资源。 CDN预热 针对加速 域名 预热对应的媒资文件至CDN节点,获得更高速的播放体验。 音视频处理 音视频转码 音视频转码当前支持的输入格式如下所示: 支持输入的音视频文件格式:MP4、TS、MOV、FLV、MPG、MXF、WMV、ADTS、AVI、MKV、MPEG、VOB、RM、MTS等。 支持输入的视频编码格式:H.264、 H.265、 MPEG-2、MPEG-4、MJPEG、WMV1/2/3、ProRes 422等。 支持输入的音频编码格式:AAC、 AC3、EAC3、HE-AAC、MP2、MP3、PCM(s161e、s16be、s241e、s24be、dvd)、WMA等。 音视频转码当前支持的输出格式如下所示: 支持输出的音视频文件格式:DASH、HLS、MP4、MP3、ADTS。 支持输出的音视频编码格式:H264、 H265、HE_AAC、AAC、MP3。 说明: 如果用户需要多转码模式,即同一媒资转码成不同格式,需提交工单申请开通。 视频水印 支持对上传的视频添加特定的水印,暂只支持添加PNG、JPG、JPEG格式,大小不超过10M的图片水印。 音频提取 支持提取视频文件中的音频文件,暂只支持提取MP3格式的音频。 视频截图 支持对视频文件进行截图,生成JPG格式的图片文件。 采样截图:根据时间间隔采样截图,默认截图间隔为12s。 指定时间点截图:指定一组时间点,截取视频中这些时间点的图像。 音视频转封装 支持仅转换音视频文件的格式,不改变分辨率和码率等参数。 支持将FLV和HLS格式的音视频文件转封装为MP4格式。 支持将MP4、FLV和MP3格式的音视频文件转封装为HLS格式。 音 视频审核 支持对上传的音视频进行合法性审核。 音视频加速播放 自定义域名 支持使用配置好的视频点播域名进行音视频分发加速。 防盗链 支持Referer防盗链、Key防盗链等安全机制有效保护加速分发的资源。 安全管理 Referer防盗链 支持通过限制Referer的黑白名单方式,限制用户对点播资源的访问,保证点播资源不被非法网站盗链。 Key防盗链 支持通过Key方式加密播放的URL,限制用户对点播资源的访问,保证点播资源不被非法网站盗链。 HLS加密 支持对HLS视频内容进行AES128加密,保证点播资源不被泄露和非法盗链。 HTTPS安全加速 支持配置HTTPS安全加速。 支持强制跳转HTTPS和HTTP2.0。 点播控制台 概览 支持查看点播的资源用量等数据。 支持变更点播的CDN计费模式。 音视频管理 支持转码、预热、分类、导出、删除、取消转码音视频文件。 支持对视频文件进行音频提取。 支持为视频文件上传封面和字幕文件。 支持查看音视频的播放地址及字幕和封面信息。 视频处理 支持对视频文件进行截图。 支持通过工作流处理音视频文件。 音视频审核 支持对上传的音视频进行合法性审核。 上传音视频 支持通过本地上传和URL拉取两种方式上传音视频文件。 全局设置 支持添加配置转码模板、水印模板、HLS加密、消息订阅、工作流等。 域名管理 支持添加自有域名,配置CNAME、HTTPS安全加速及防盗链。 用量查询 支持查看CDN侧的流量和峰值带宽统计数据,同时也支持查看点播源站侧的存储空间和转码时长的消耗。 数据分析 支持查看CDN侧的流量、带宽、流量命中率等数据,还支持根据域名查询音视频文件播放次数及播放量的TOP排名。 点播API 媒资上传 提供上传方式、OBS转存方式、URL拉取方式媒资创建接口。 媒资管理 提供媒资发布、取消,修改媒资属性,查询和删除媒资等接口。 CDN预热 提供媒资预热接口,支持按媒资ID或媒资URL进行预热。 媒资处理 提供视频处理、封面设置、音视频审核等接口。其中视频处理接口支持转码、截图、HLS加密等操作。 媒资分类 提供了媒资分类创建、删除、修改和查询接口。 统计分析 提供了查询CDN统计信息、源站统计信息、TOP媒资信息的接口。支持查看CDN、点播源站的相关统计信息。 密钥查询 支持查询HLS加密的密钥。 点播SDK 服务端SDK 提供了媒资上传、媒资处理、媒资管理、预热分发等功能。
  • 自动扫描性能说明和配置建议 性能说明: 数据面底层SCAN扫描间隔5ms,相当于1秒钟扫描200次。迭代扫描key数量设为10/50/100/1000时,每秒钟扫描2000/10000/20000/200000个key。 每秒钟扫描key数量越大,cpu占用率也相应增加。 测试参考: 使用主备实例测试,在有1000万不过期和500万过期的key,过期时间为1-10秒的场景下,完成一次全库扫描,测试数据如下: 以下测试结果仅供参考,不同局点环境和网络波动等客观条件可能产生差异。 自然删除,每秒删除1万条过期key,删除500万过期key,耗时约为8分钟,cpu占用率约为5%。 “迭代扫描key数量”设为10,耗时约为 1500万/0.2万/60秒 = 125分,cpu占用率约为8%。 “迭代扫描key数量”设为50,耗时约为 1500万/1万/60秒 = 25分, 删除key时cpu占用率约10%。 “迭代扫描key数量”设为100,耗时约为 1500万/2万/60秒 = 12.5分, 删除key时cpu占用率约20%。 “迭代扫描key数量”设为1000,耗时约为 1500万/20万/60秒 = 1.25分,删除key时cpu占用率约为25%。 配置建议:
  • 故障排除 Error: Connection reset by peer 原因:安全组没有配置正确,需要参考放通36379端口或放通6379端口。 使用redis-cli连接实例,会出现:远程主机强迫关闭一个现有的连接。 原因:开启了SSL加密传输,连接时没有配置Stunnel,直接使用界面提示的IP地址进行连接。开启SSL加密时,您需要按照公网连接Redis 3.0(Linux环境,开启SSL加密时)的操作步骤执行。 更多连接失败的问题,请查看Redis实例连接失败的原因排查。
  • 运行结果 编译并运行以上Demo程序,结果如下: 商品热销排行榜 产品ID: product-b290c0d4-e919-4266-8eb5-7ab84b19862d, 销量: 18433 产品ID: product-e61a0642-d34f-46f4-a720-ee35940a5e7f, 销量: 18334 产品ID: product-ceeab7c3-69a7-4994-afc6-41b7bc463d44, 销量: 18196 产品ID: product-f2bdc549-8b3e-4db1-8cd4-a2ddef4f5d97, 销量: 17870 产品ID: product-f50ca2de-7fa4-45a3-bf32-23d34ac15a41, 销量: 17842 产品ID: product-d0c364e0-66ec-48a8-9ac9-4fb58adfd033, 销量: 17782 产品ID: product-5e406bbf-47c7-44a9-965e-e1e9b62ed1cc, 销量: 17093 产品ID: product-0c4d31ee-bb15-4c88-b319-a69f74e3c493, 销量: 16432 产品ID: product-a986e3a4-4023-4e00-8104-db97e459f958, 销量: 16380 产品ID: product-a3ac9738-bed2-4a9c-b96a-d8511ae7f03a, 销量: 15305 产品ID: product-6b8ad4b7-e134-480f-b3ae-3d35d242cb53, 销量: 14534 产品ID: product-26a9b41b-96b1-4de0-932b-f78d95d55b2d, 销量: 11417 产品ID: product-1f043255-a1f9-40a0-b48b-f40a81d07e0e, 销量: 10875 产品ID: product-c8fee24c-d601-4e0e-9d18-046a65e59835, 销量: 10521 产品ID: product-5869622b-1894-4702-b750-d76ff4b29163, 销量: 10271 产品ID: product-ff0317d2-d7be-4021-9d25-1f997d622768, 销量: 9909 产品ID: product-da254e81-6dec-4c76-928d-9a879a11ed8d, 销量: 9504 产品ID: product-fa976c02-b175-4e82-b53a-8c0df96fe877, 销量: 8630 产品ID: product-0624a180-4914-46b9-84d0-9dfbbdaa0da2, 销量: 8405 产品ID: product-d0079955-eaea-47b2-845f-5ff05a110a70, 销量: 7930 产品ID: product-a53145ef-1db9-4c4d-a029-9324e7f728fe, 销量: 7429 产品ID: product-9b1a1fd1-7c3b-4ae8-9fd3-ab6a0bf71cae, 销量: 5944 产品ID: product-cf894aee-c1cb-425e-a644-87ff06485eb7, 销量: 5252 产品ID: product-8bd78ba8-f2c4-4e5e-b393-60aa738eceae, 销量: 4903 产品ID: product-89b64402-c624-4cf1-8532-ae1b4ec4cabc, 销量: 4527 产品ID: product-98b85168-9226-43d9-b3cf-ef84e1c3d75f, 销量: 3095 产品ID: product-0dda314f-22a7-464b-ab8c-2f8f00823a39, 销量: 2425 产品ID: product-de7eb085-9435-4924-b6fa-9e9fe552d5a7, 销量: 1694 产品ID: product-9beadc07-aab0-438c-ac5e-bcc72b9d9c36, 销量: 1135 产品ID: product-43834316-4aca-4fb2-8d2d-c768513015c5, 销量: 256 商品热销排行榜 前五大热销产品 产品ID: product-b290c0d4-e919-4266-8eb5-7ab84b19862d, 销量: 18433 产品ID: product-e61a0642-d34f-46f4-a720-ee35940a5e7f, 销量: 18334 产品ID: product-ceeab7c3-69a7-4994-afc6-41b7bc463d44, 销量: 18196 产品ID: product-f2bdc549-8b3e-4db1-8cd4-a2ddef4f5d97, 销量: 17870 产品ID: product-f50ca2de-7fa4-45a3-bf32-23d34ac15a41, 销量: 17842
  • 方案概述 在网页和APP中经常需要用到榜单的功能,对某个key-value的列表进行降序显示。当操作和查询并发大的时候,使用传统数据库就会遇到性能瓶颈,造成较大的时延。 使用分布式缓存服务(D CS )的Redis版本,可以实现一个商品热销排行榜的功能。它的优势在于: 数据保存在内存中,读写速度非常快。 提供字符串(String)、链表(List)、集合(Set)、哈希(Hash)等多种数据结构类型的存储。
  • 前提条件 已创建DCS缓存实例,且状态为“运行中”。 客户端所在服务器与DCS缓存实例网络互通: 客户端与Redis实例所在VPC为同一VPC 同一VPC内网络默认互通。 客户端与Redis实例所在VPC为相同region下的不同VPC 如果客户端与Redis实例不在相同VPC中,可以通过建立VPC对等连接方式连通网络,具体请参考:缓存实例是否支持跨VPC访问?。 客户端与Redis实例所在VPC不在相同region 如果客户端服务器和Redis实例不在同一region,仅支持通过云专线打通网络,请参考云专线。 公网访问 客户端公网访问Redis 4.0/5.0/6.0实例时,需要开启实例公网访问开关,具体请参考开启Redis 4.0/5.0/6.0公网访问并获取公网访问地址。 客户端所在的服务器已安装JDK1.8以上版本和开发工具(本文档以安装Eclipse为例),下载jedis客户端(单击此处直接下载jar包)。 本文档下载的开发工具和客户端仅为示例,您可以选择其它类型的工具和客户端。
  • 方案概述 应用场景 随着互联网等数据库应用行业的逐渐发展,业务需求急速增加,数据量和并发访问量呈指数级增长,仅依附于传统关系型数据库难以支撑上层业务。传统数据库存在结构复杂、维护成本高、访问性能差、功能有限、无法轻松适应数据模型或模式的变化等问题。 解决方案 将Redis作为应用与数据库之间的缓存层可以解决上述问题,通过Redis缓存数据,提高数据读取速度,减轻数据库负载,提高应用性能,保证数据的可靠性。 因此,对于传统的关系型数据库例如MySQL,可以将其数据迁移到Redis中。Redis中的数据是以键值结构进行存储的,在迁移前需要将传统的数据库转换为特定的结构。本文以将MySQL数据库中的一张表迁移到华为云DCS Redis中为例,介绍数据迁移的过程。
  • 前提条件 已创建DCS Redis实例,作为迁移的目的数据库。请参考创建DCS Redis缓存实例。 如果您的源端是华为云的MySQL数据库,Redis实例请选择与MySQL数据库实例相同的VPC。 已有MySQL数据库,并在其中创建一张表,作为源端数据库中的数据。 例如,在MySQL数据库中创建一张名为student_info的表格,表中共有4列,迁移后表中的id列的值将成为Redis中的hash的key,其余的列名将成为hash的field,而列的值作为field对应的value。 MySQL数据库所在服务器与DCS缓存实例网络互通。 MySQL数据库与Redis实例所在VPC为同一VPC 同一VPC内网络默认互通。 MySQL数据库与Redis实例所在VPC为相同region下的不同VPC 如果MySQL数据库所在VPC与Redis实例不在相同VPC中,可以通过建立VPC对等连接方式连通网络,具体请参考:缓存实例是否支持跨VPC访问?。 MySQL数据库与Redis实例所在VPC不在相同region 如果MySQL数据库和Redis实例不在同一region,仅支持通过云专线打通网络,请参考云专线。 公网访问 MySQL数据库所在服务器公网访问Redis 4.0/5.0/6.0实例时,需要开启实例公网访问开关,具体请参考开启Redis 4.0/5.0/6.0公网访问并获取公网访问地址。 MySQL数据库所在服务器已安装JDK1.8以上版本和Intellij IDEA开发工具,下载jedis客户端(点此处下载jar包)。 本文档下载的开发工具和客户端仅为示例,您可以选择其它类型的工具和客户端。
  • 方案概述 当前,华为云DCS的Redis 4.0、Redis 5.0以及Redis 6.0版本不支持绑定弹性IP,无法直接通过公网访问。 本章节主要介绍通过SSH工具的隧道代理机制,通过一台既能连接DCS缓存实例,又能被本地电脑访问的中转服务器,实现“代理转发”,从而访问VPC内Redis 4.0/5.0/6.0单机、主备、读写分离、Proxy集群实例。Cluster集群实例暂不支持使用该方案进行公网访问。 不建议在生产环境中使用公网访问的方式,对于因公网网络性能造成的客户端访问异常不计入SLA。
  • 实施步骤 在本地电脑中打开MobaXterm工具。 新建一个到ECS的SSH连接,使用22号端口。 图1 连接ECS SSH连接配置好后,输入登录用户和密码,连接上ECS。登录后输入TMOUT=0,避免连接超时自动关闭。 图2 输入TMOUT=0 在MobaXterm工具中找到MobaSSHtunnal,建立隧道。 图3 创建隧道 配置本地IP为127.0.0.1后,启动隧道。 图4 启动隧道 本地电脑打开Redis客户端,以Redis命令行界面为例。连接DCS缓存实例,命令如下: Redis-cli -h 127.0.0.1 -p 3306 -a {password} 参数说明: -h 主机名:localhost或者127.0.0.1,和隧道建立时配置的本地IP相同。 -p 端口号:3306,和隧道建立时配置的本地侦听端口相同。 -a 密码:DCS缓存实例连接密码。 连接成功,显示如下。 图5 连接实例
  • 配置Nginx Nginx安装后,需要配置请求转发规则,告诉Nginx哪个端口收到的请求,应该转发到后端哪个Redis实例。 打开并修改配置文件。 cd /etc/nginx vi nginx.conf 配置示例如下,如果有多个redis实例需要公网连接,可以配置多个server,在proxy_pass中配置Redis实例连接地址。 stream { server { listen 8080; proxy_pass 192.168.0.5:6379; } server { listen 8081; proxy_pass 192.168.0.6:6379; } } proxy_pass参数配置值为同一vpc下的Redis实例的IP地址,具体可从缓存实例详情页面的“连接信息”区域获取。 图4 Nginx配置信息的输入位置 重启Nginx服务。 service nginx restart 验证启动是否成功。 netstat -an|grep 808 图5 启动Nginx及验证 8080和8081两个端口都在监听状态,Nginx启动成功。
  • 安装Nginx 购买ECS后,需要在ECS上安装Nginx,本文以ECS操作系统为Centos7.x为例进行安装,不同操作系统命令稍有不同。 执行以下命令,添加Nginx到yum源。 sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 添加完之后,执行以下命令,查看是否已经添加成功。 yum search nginx 添加成功之后,执行以下命令,安装Nginx。 sudo yum install -y nginx 执行以下命令安装stream模块。 yum install nginx-mod-stream --skip-broken 启动Nginx并设置为开机自动运行。 sudo systemctl start nginx.service sudo systemctl enable nginx.service 在本地浏览器中输入服务器地址(ECS公网IP地址),查看安装是否成功。 如果出现下面页面,则表示安装成功。
  • (可选)长连接场景 如果用户公网访问时需要使用长连接,那么需要在如上配置Nginx中增加以下配置: Nginx到后端server的超时时间 stream { server { listen 8080; proxy_pass 192.168.0.5:6379; proxy_socket_keepalive on; proxy_timeout 60m; proxy_connect_timeout 60s; } server { listen 8081; proxy_pass 192.168.0.6:6379; proxy_socket_keepalive on; proxy_timeout 60m; proxy_connect_timeout 60s; } } proxy_timeout 默认值是10m(10分钟),可以根据用户需要设为60m或其他值。Nginx官网 proxy_timeout说明 客户端到Nginx的超时时间 http { keepalive_timeout 3600s; } keepalive_timeout 默认值是75s,可以根据用户需要设为3600s或其他值。Nginx官网 keepalive_timeout 说明
  • 通过Nginx访问Redis 登录ECS控制台,确认跳板机的安全组规则是否放开,如果没有,则需要为安全组放开8080和8081两个端口。 单击ECS实例名称,进入ECS详情页面。 选择“安全组”页签,单击“配置规则”,可进入安全组配置页面。 图6 进入ECS安全组 图7 添加安全组入方向规则 在公网环境中打开Redis命令行界面,输入如下命令,登录与查询都正常。 公网环境已参考Redis-cli连接中相关步骤,安装Redis-cli客户端。 ./redis-cli -h {myeip} -p {port} -a {mypassword} 其中,命令中的{myeip}为主机连接地址,需要填写ECS的弹性IP,端口需要填写ECS上Nginx的监听端口。 如下图所示,设置的2个监听端口分别为8080和8081,对应后端2个Redis实例。 图8 通过Nginx代理连接第一个Redis实例 图9 通过Nginx代理连接第二个Redis实例
  • 方案概述 当前,华为云DCS的Redis 4.0、Redis 5.0以及Redis 6.0版本不支持绑定弹性IP,无法直接通过公网访问。 本章节主要介绍通过跳板机访问VPC内Redis 4.0/5.0/6.0单机、主备、读写分离、Proxy集群实例的操作,Cluster集群实例暂不支持使用该方案进行公网访问。 图1中安装了Nginx代理工具的ECS就是一台跳板机,它与DCS Redis实例在相同VPC,可通过子网IP访问Redis实例;为ECS绑定弹性IP后,公网可以访问ECS;Nginx支持监听多个端口,并将请求内容转发到不同的后端Redis实例。 图1 通过Nginx访问VPC内DCS Redis 不建议在生产环境中使用公网访问的方式,对于因公网网络性能造成的客户端访问异常不计入SLA。
  • 方案概述 应用场景 视频、直播弹幕展示和社交网站评论回复等场景,要求时效性高,互动性强,类似这样的业务对平台的系统时延有着非常高的要求。如果使用关系型数据库,会涉及到按评论时间逆排序,随着评论越来越多,排序效率越来越低,且并发频繁。 解决方案 使用分布式缓存服务(DCS)的Redis缓存,可以从不同的维度,对某个key-value的列表进行降序显示。例如,直播弹幕中的弹幕列表,可以采用zset有序集合结构,以时间戳为score权重参数进行排序,value可以直接存储弹幕内容。社交网站评论回复,同样也可以采用zset结构,但是由于社交网站评论和回复的内容很多,展示结构有一定的层级,同时需要持久化到本地,可以用value存储评论主键ID,评论内容存放到数据库,通过ID查询评论内容。
  • 前提条件 已创建DCS缓存实例,且状态为“运行中”。 客户端所在服务器与DCS缓存实例网络互通: 客户端与Redis实例所在VPC为同一VPC 同一VPC内网络默认互通。 客户端与Redis实例所在VPC为相同region下的不同VPC 如果客户端与Redis实例不在相同VPC中,可以通过建立VPC对等连接方式连通网络,具体请参考:缓存实例是否支持跨VPC访问?。 客户端与Redis实例所在VPC不在相同region 如果客户端服务器和Redis实例不在同一region,仅支持通过云专线打通网络,请参考云专线。 公网访问 客户端公网访问Redis 4.0/5.0/6.0实例时,需要开启实例公网访问开关,具体请参考开启Redis 4.0/5.0/6.0公网访问并获取公网访问地址。 客户端所在的服务器已安装JDK1.8以上版本和开发工具(本文档以安装Eclipse为例),下载jedis客户端(单击此处直接下载jar包)。 本文档下载的开发工具和客户端仅为示例,您可以选择其它类型的工具和客户端。
  • 运行结果 视频直播 弹幕代码示例运行结果如下: 直播弹幕列表 弹幕内容: message-07f1add5-2f85-4309-9f31-313c860b33dc, 发送时间: 1686902337377 弹幕内容: message-2062e817-3145-4d8b-af7f-46f334c8569c, 发送时间: 1686902337394 弹幕内容: message-ad36a0ca-e8bd-4883-a091-e12a25c00106, 发送时间: 1686902337396 弹幕内容: message-f02f9960-bb57-49ae-b7d8-6bd6d3ad3d14, 发送时间: 1686902337412 弹幕内容: message-5ca39948-866e-4e54-a469-f958cae843f6, 发送时间: 1686902337457 弹幕内容: message-5cc8b4ba-da61-4d01-9625-cf2e7337ef10, 发送时间: 1686902337489 弹幕内容: message-15378516-18ce-4da7-bd3c-35c57dd65602, 发送时间: 1686902337495 弹幕内容: message-1b280525-53e5-4fc6-a3e7-fb8e71eef85e, 发送时间: 1686902337540 弹幕内容: message-adf876d1-e747-414e-92a2-397fc329bd58, 发送时间: 1686902337541 弹幕内容: message-1d8d7901-164f-4dd4-abb4-6f2345164b0e, 发送时间: 1686902337582 弹幕内容: message-fb35b1b4-277a-48bf-b22b-80070aae8475, 发送时间: 1686902337667 弹幕内容: message-973b1b03-bf95-44d8-ab91-0c317b2d61b3, 发送时间: 1686902337755 弹幕内容: message-1481f883-757d-47f7-b8c0-df024d6e64a4, 发送时间: 1686902337770 弹幕内容: message-b79292ca-2409-43fb-aaf0-e33f3b9d9c8d, 发送时间: 1686902337820 弹幕内容: message-66b0e955-d509-4475-9ae5-12fb86cf9596, 发送时间: 1686902337844 弹幕内容: message-12b6d15a-037a-47ee-8294-8625d202c0a0, 发送时间: 1686902337907 弹幕内容: message-fbc06323-da2a-44b8-874b-d2cf1a737064, 发送时间: 1686902337927 弹幕内容: message-7a0f787c-aff1-422f-9e62-4beda0cd5914, 发送时间: 1686902337977 弹幕内容: message-8ba5e4e0-22af-4f80-90a6-35062967e0fd, 发送时间: 1686902337992 弹幕内容: message-fa9e1169-e918-4141-9805-87edcf84c379, 发送时间: 1686902338000 弹幕内容: message-5d17be15-ba2e-461f-aba5-65c20c21d313, 发送时间: 1686902338059 弹幕内容: message-dcedc840-1be7-496a-b781-5b79c2091fe5, 发送时间: 1686902338067 弹幕内容: message-9e39eb28-6629-4d4c-8970-2acdc0e81a5c, 发送时间: 1686902338102 弹幕内容: message-030b11fe-c258-4ca2-ac82-5e6ca1eb688f, 发送时间: 1686902338211 弹幕内容: message-93322018-a987-47ba-8093-3937dddda97d, 发送时间: 1686902338242 弹幕内容: message-bc04a9b0-ec83-4a24-83f6-0a4f25ee8896, 发送时间: 1686902338281 弹幕内容: message-c6dd96d0-c938-41e4-b5d8-6275fdf83050, 发送时间: 1686902338290 弹幕内容: message-12b70173-1b86-4370-a7ea-dc0ade135422, 发送时间: 1686902338312 弹幕内容: message-a39c2ef8-8167-4945-b60d-355db6c69005, 发送时间: 1686902338318 弹幕内容: message-2c3bf2fb-5298-472c-958c-c4b53d734e89, 发送时间: 1686902338326 最新的5条弹幕信息 弹幕内容: message-2c3bf2fb-5298-472c-958c-c4b53d734e89, 发送时间: 1686902338326 弹幕内容: message-a39c2ef8-8167-4945-b60d-355db6c69005, 发送时间: 1686902338318 弹幕内容: message-12b70173-1b86-4370-a7ea-dc0ade135422, 发送时间: 1686902338312 弹幕内容: message-c6dd96d0-c938-41e4-b5d8-6275fdf83050, 发送时间: 1686902338290 弹幕内容: message-bc04a9b0-ec83-4a24-83f6-0a4f25ee8896, 发送时间: 1686902338281 Process finished with exit code 0
  • 前提条件 已创建DCS缓存实例,且状态为“运行中”。 客户端所在服务器与DCS缓存实例网络互通: 客户端与Redis实例所在VPC为同一VPC 同一VPC内网络默认互通。 客户端与Redis实例所在VPC为相同region下的不同VPC 如果客户端与Redis实例不在相同VPC中,可以通过建立VPC对等连接方式连通网络,具体请参考:缓存实例是否支持跨VPC访问?。 客户端与Redis实例所在VPC不在相同region 如果客户端服务器和Redis实例不在同一region,仅支持通过云专线打通网络,请参考云专线。 公网访问 客户端公网访问Redis 4.0/5.0/6.0实例时,需要开启实例公网访问开关,具体请参考开启Redis 4.0/5.0/6.0公网访问并获取公网访问地址。 客户端所在的服务器已安装JDK1.8以上版本和开发工具(本文档以安装Eclipse为例),下载jedis客户端(单击此处直接下载jar包)。 本文档下载的开发工具和客户端仅为示例,您可以选择其它类型的工具和客户端。
  • 方案概述 应用场景 在传统单机部署的情况下,可以使用Java并发处理相关的API(如ReentrantLock或synchronized)进行互斥控制。这种Java提供的原生锁机制可以保证在同一个Java虚拟机进程内的多个线程同步执行,避免出现无序现象。 但在互联网场景,例如在商品秒杀过程中,随着客户业务量上升,整个系统并发飙升,需要多台机器并发运行。例如当两个用户同时发起的请求分别落在两个不同的机器上时,虽然这两个请求可以同时执行,但是因为两个机器运行在两个不同的Java虚拟机中,因此每个机器加的锁不是同一个锁,而不同的锁只对属于自己Java虚拟机中的线程有效,对其他Java虚拟机的线程无效。此时,Java提供的原生锁机制在多机部署场景下就会失效,出现库存超卖的现象。 解决方案 基于上述场景,需要保证两台机器加的锁是同一个锁,用加锁的方式对某种资源进行顺序访问控制。这就需要分布式锁登场了。 分布式锁的思路是:在整个系统提供一个全局的、唯一的分配锁的“东西”,当每个系统需要加锁时,都向其获取一把锁,使不同的系统获取到的内容可以认为是同一把锁。 当前分布式加锁主要有三种方式:(磁盘)数据库、缓存数据库、Zookeeper。 使用DCS服务中Redis缓存实例实现分布式加锁,有几大优势: 加锁操作简单,使用SET、GET、DEL等几条简单命令即可实现锁的获取和释放。 性能优越,缓存数据的读写优于磁盘数据库与Zookeeper。 可靠性强,DCS有主备和集群实例类型,避免单点故障。 对分布式应用加锁,能够避免出现库存超卖及无序访问等现象。本实践介绍如何使用Redis对分布式应用加锁。
  • 前提条件 已创建DCS缓存实例,且状态为“运行中”。 客户端所在服务器与DCS缓存实例网络互通: 客户端与Redis实例所在VPC为同一VPC 同一VPC内网络默认互通。 客户端与Redis实例所在VPC为相同region下的不同VPC 如果客户端与Redis实例不在相同VPC中,可以通过建立VPC对等连接方式连通网络,具体请参考:缓存实例是否支持跨VPC访问?。 客户端与Redis实例所在VPC不在相同region 如果客户端服务器和Redis实例不在同一region,仅支持通过云专线打通网络,请参考云专线。 公网访问 客户端公网访问Redis 4.0/5.0/6.0实例时,需要开启实例公网访问开关,具体请参考开启Redis 4.0/5.0/6.0公网访问并获取公网访问地址。 客户端所在服务器已安装JDK1.8以上版本和Intellij IDEA开发工具,下载jedis客户端(点此处下载jar包)。 本文档下载的开发工具和客户端仅为示例,您可以选择其它类型的工具和客户端。
  • 操作步骤 下载image-syncer到执行机上,解压并运行工具。 以v1.3.1版本为例,您也可以选择其他版本。 wget https://github.com/AliyunContainerService/image-syncer/releases/download/v1.3.1/image-syncer-v1.3.1-linux-amd64.tar.gz tar -zvxf image-syncer-v1.3.1-linux-amd64.tar.gz 创建镜像仓库的认证信息文件auth.json。 image-syncer支持基于Docker Registry V2搭建的docker镜像仓库,按格式填写即可。将源仓库及目标仓库认证信息写入,示例如下。 { "swr.××××.myhuaweicloud.com": { "username": "××××@F1I3Q……", "password": "2fd4c869ea0……" }, "swr.××××.myhuaweicloud.com": { "username": "××××@4N3FA……", "password": "f1c82b57855f9d35……" } 其中swr.××××.myhuaweicloud.com 为镜像仓库地址,username、password可以在登录命令中获取,获取方法如下: 登录SWR控制台,在总览页面右上角单击“登录指令”,在弹出的窗口中获取登录指令,如下图所示。 图1 登录指令 创建同步镜像描述文件images.json。 如下示例,左边是源仓库的地址,右边是目的仓库地址。image-syncer还支持其他描述方式,具体请参见README-zh_CN.md。 { "swr.cn-north-4.myhuaweicloud.com/org-ss/canary-consumer": "swr.cn-east-3.myhuaweicloud.com/dev-container/canary-consumer" } 执行如下命令将镜像迁移至SWR。 ./image-syncer --auth=./auth.json --images=./images.json --namespace=dev-container --registry=swr.cn-east-3.myhuaweicloud.com --retries=3 --log=./log 表1 命令行参数说明 参数 说明 --config 设置用户提供的配置文件路径,使用之前需要创建此文件,默认为当前工作目录下的config.json文件。这个参数与 --auth和--images 的作用相同,分解成两个参数可以更好地区分认证信息与镜像仓库同步规则。建议使用 --auth 和 --images。 --images 设置用户提供的镜像同步规则文件所在路径,使用之前需要创建此文件,默认为当前工作目录下的images.json文件。 --auth 设置用户提供的认证文件所在路径,使用之前需要创建此认证文件,默认为当前工作目录下的auth.json文件。 --log 打印出来的log文件路径,默认打印到标准错误输出,如果将日志打印到文件将不会有命令行输出,此时需要通过cat对应的日志文件查看。 --namespace 设置默认的目标namespace,当配置文件内一条images规则的目标仓库为空,并且默认registry也不为空时有效,可以通过环境变量DEFAULT_NAMESPACE设置,同时传入命令行参数会优先使用命令行参数值。 --proc 并发数,进行镜像同步的并发goroutine数量,默认为5。不建议修改该参数。 --retries 失败同步任务的重试次数,默认为2,重试会在所有任务都被执行一遍之后开始,并且也会重新尝试对应次数生成失败任务的生成。一些偶尔出现的网络错误比如io timeout、TLS handshake timeout,都可以通过设置重试次数来减少失败的任务数量。 --registry 设置默认的目标registry,当配置文件内一条images规则的目标仓库为空,并且默认namespace也不为空时有效,可以通过环境变量DEFAULT_REGISTRY设置,同时传入命令行参数会优先使用命令行参数值。 迁移命令执行后,可登录目标镜像仓库,查看已迁移的镜像。
  • 方案概述 为了确保数据的实时性和一致性,可以周期性地将MySQL数据库中的数据同步至Oracle数据库中。这一过程会按照预设的时间间隔精确执行,通过模板“定时同步MySql中的数据到Oracle”创建组合应用,系统会自动抓取MySQL数据库中的最新数据记录,并将其无缝对接到Oracle数据库中,实现两个数据库之间的高效、准确的数据更新与同步。这样不仅能够减少人工操作带来的错误和遗漏,Oracle数据库中的数据都能反映出MySQL数据库的最新状态,满足业务系统的数据需求和数据分析的一致性要求。 父主题: 定时同步MySQL中的数据到Oracle
  • 后续操作 当创建训练作业的参数配置完成后,单击“提交”,在信息确认页面单击“确定”,提交创建训练作业任务。 训练作业一般需要运行一段时间,前往训练作业列表,可以查看训练作业的基本情况。 在训练作业列表中,刚创建的训练作业状态为“等待中”。 当训练作业的状态变为“已完成”时,表示训练作业运行结束,其生成的模型将存储至对应的“输出”目录中。 当训练作业的状态变为“运行失败”或“异常”时,可以单击训练作业的名称进入详情页面,通过查看日志等手段处理问题。 训练作业运行过程中将按照选择的资源进行计费。
  • 支持的策略 ModelArts Stanard支持用户使用自动化搜索功能。自动化搜索功能在零代码修改的前提下,自动找到最合适的超参,有助于提高模型精度和收敛速度。详细的参数配置请参考创建自动模型优化的训练作业。 自动搜索目前仅支持“tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64”和“pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64”镜像
  • 定义超参 创建算法时,ModelArts Standard支持用户自定义超参,方便用户查阅或修改。定义超参后会体现在启动命令中,以命令行参数的形式传入您的启动文件中。 导入超参 您可以单击“增加超参”手动添加超参。 编辑超参 为保证数据安全,请勿输入敏感信息,例如明文密码。 超参的参数说明参见表6。 表6 超参编辑参数 参数 说明 名称 填入超参名称。 超参名称支持64个以内字符,仅支持大小写字母、数字、下划线和中划线。 类型 填入超参的数据类型。支持String、Integer、Float和Boolean。 默认值 填入超参的默认值。创建训练作业时,默认使用该值进行训练。 约束 单击“约束”。在弹出对话框中,支持用户设置默认值的取值范围或者枚举值范围。 必须 选择是或否。 选择否,则在使用该算法创建训练作业时,支持在创建训练作业页面删除该超参。 选择是,则在使用该算法创建训练作业时,不支持在创建训练作业页面删除该超参。 描述 填入超参的描述说明。 超参描述支持大小写字母、中文、数字、空格、中划线、下划线、中英文逗号和中英文句号。
  • 输入输出管道设置 训练过程中,算法需要从OBS桶或者数据集中获取数据进行模型训练,训练产生的输出结果也需要存储至OBS桶中。用户的算法代码中需解析输入输出参数实现ModelArts后台与OBS的数据交互,用户可以参考准备模型训练代码完成适配ModelArts训练的代码开发。 创建基于预置框架的算法时,用户需要配置算法代码中定义的输入输出参数。 输入配置 表4 输入配置 参数 参数说明 参数名称 根据实际代码中的输入数据参数定义此处的名称。此处设置的代码路径参数必须与算法代码中解析的训练输入数据参数保持一致,否则您的算法代码无法获取正确的输入数据。 例如,算法代码中使用argparse解析的data_url作为输入数据的参数,那么创建算法时就需要配置输入数据的参数名称为“data_url”。 描述 输入参数的说明,用户可以自定义描述。 获取方式 输入参数的获取方式,默认使用“超参”,也可以选择“环境变量”。 输入约束 开启后,用户可以根据实际情况限制数据输入来源。输入来源可以选择“数据存储位置”或者“ModelArts数据集”。 如果用户选择数据来源为ModelArts数据集,还可以约束以下三种: 标注类型。数据类型请参考标注数据。 数据格式。可选“Default”和“CarbonData”,支持多选。其中“Default”代表Manifest格式。 数据切分。仅“图像分类”、“物体检测”、“文本分类”和“声音分类”类型数据集支持进行数据切分功能。 可选“仅支持切分的数据集”、“仅支持未切分数据集”和“无限制”。数据切分详细内容可参考发布数据版本。 添加 用户可以根据实际算法添加多个输入数据来源。 输出配置 表5 输出配置 参数 参数说明 参数名称 根据实际代码中的训练输出参数定义此处的名称。此处设置的代码路径参数必须与算法代码中解析的训练输出参数保持一致,否则您的算法代码无法获取正确的输出路径。 例如,算法代码中使用argparse解析的train_url作为训练输出数据的参数,那么创建算法时就需要配置输出数据的参数名称为“train_url”。 描述 输出参数的说明,用户可以自定义描述。 获取方式 输出参数的获取方式,默认使用“超参”,也可以选择“环境变量”。 添加 用户可以根据实际算法添加多个输出数据路径。
  • 设置算法启动方式(预置框架+自定义) 选择“预置框架”+“自定义”镜像创建算法。 图2 使用预置框架+ 自定义镜像 创建算法 用户需根据实际算法代码情况设置“镜像”、“代码目录”和“启动文件”。选择的AI镜像和编写算法代码时选择的框架必须一致。例如编写算法代码使用的是TensorFlow,则在创建算法时也要选择TensorFlow镜像。 表2 启动方式参数说明 参数 说明 “启动方式” 选择“预置框架”。 预置框架的引擎版本选择“自定义”。 “镜像” 用户制作的镜像需要提前上传到SWR,才可以在这里选择。制作镜像的方式请参见训练作业的自定义镜像制作流程。 “代码目录” 算法代码存储的OBS路径。训练代码、依赖安装包或者预生成模型等训练所需文件上传至该代码目录下。 请注意不要将训练数据放在代码目录路径下。训练数据比较大,训练代码目录在训练作业启动后会下载至后台,可能会有下载失败的风险。 训练作业启动时,ModelArts会将训练代码目录及其子目录下载至训练后台容器中。 例如:OBS路径“obs://obs-bucket/training-test/demo-code”作为代码目录,OBS路径下的内容会被自动下载至训练容器的“${MA_JOB_DIR}/demo-code”目录中,demo-code为OBS存放代码路径的最后一级目录,用户可以根据实际修改。 说明: 训练代码编程语言不限。训练启动文件必须为Python语言。 文件数(含文件、文件夹数量)小于或等于1000个。 文件总大小要小于或等于5GB。 文件深度要小于或等于32 “启动文件” 必须为“代码目录”下的文件,且以“.py”结尾,即ModelArts目前只支持使用Python语言编写的启动文件。 代码目录路径中的启动文件为训练启动的入口。 选择预置框架+自定义时,该功能的后台行为与直接基于预置框架运行训练作业相同,例如: 系统将会自动注入一系列环境变量 PATH=${MA_HOME}/anaconda/bin:${PATH} LD_LIBRARY_PATH=${MA_HOME}/anaconda/lib:${LD_LIBRARY_PATH} PYTHONPATH=${MA_JOB_DIR}:${PYTHONPATH} 您选择的启动文件将会被系统自动以python命令直接启动,因此请确保镜像中的Python命令为您预期的Python环境。注意到系统自动注入的PATH环境变量,您可以参考下述命令确认训练作业最终使用的Python版本: export MA_HOME=/home/ma-user; docker run --rm {image} ${MA_HOME}/anaconda/bin/python -V docker run --rm {image} $(which python) -V 系统将会自动添加预置框架关联的超参
共100000条