华为云用户手册

  • 问题描述 管理员开启操作保护后,用户在进行敏感操作时,例如删除资源、生成访问密钥等,需要操作员或指定人员进行验证,避免误操作带来的风险和损失。 开启操作保护后,默认在敏感操作验证成功后的15分钟之内,进行敏感操作无需再次验证。 如当前验证方式为“操作员验证”,修改为“指定人员验证”,请参考:•当前验证方式为“操作员验证”。 如当前验证方式为“指定人员验证”,修改为“操作员验证”或修改指定人员手机号/邮件地址,请参考:•当前验证方式为“指定人员验证”。
  • 问题排查 可能原因:管理员授予 IAM 用户所在用户组的权限不正确。 解决方法:管理员确认并修改授予IAM用户所在用户组的权限,方法请参考:修改用户组权限,权限详情请参考:系统权限。 可能原因:管理员授予的权限已拒绝相关操作的授权项。 解决方法:管理员查看已授予IAM用户的系统权限详情,确认已授予的权限是否有拒绝操作的语句,方法请参考策略语法。如系统权限无法满足您的场景需要,管理员可以创建自定义策略,允许该操作对应的授权项,方法请参考:创建自定义策略。 可能原因:管理员给用户组授予权限后,忘记将IAM用户添加至用户组中。 解决方法:管理员将IAM用户添加至用户组中,方法请参见:用户组添加用户。 可能原因:对于区域级服务,管理员没有在对应的区域进行授权。 解决方法:管理员在对IAM所在用户组授权时,选择对应的区域。如果管理员授予用户默认区域项目的权限,用户只能访问该默认项目中的资源,不拥有该默认项目下IAM子项目的权限,建议您授予IAM用户最小区域权限,方法请参见:给用户组授权。 可能原因:对于区域级服务,IAM用户登录控制台后,没有切换到授权区域。 解决方法:IAM用户访问区域级服务时,请切换至授权区域,方法请参见:切换区域。 可能原因:管理员授予的OBS权限由于系统设计的原因,授权后需等待15-30分钟才可生效。 解决方法:请IAM用户和管理员等待15-30分钟后重试。 可能原因:您所属账号已欠费,无法使用该资源。 解决方法:请管理员在“费用中心”确认账单并充值,方法请参见:账户充值。 可能原因:浏览器缓存导致权限信息未更新。 解决方法:请清理浏览器缓存后重试。 可能原因:该服务可能提供独立权限控制,如软件开发生产线 CodeArts、 对象存储服务 OBS。 解决方法:请查看对应服务帮助文档,并授予用户对应权限。如CodeArts各角色的权限是怎样的、OBS权限控制概述。 可能原因:管理员同时在IAM和企业管理给用户授权,基于企业项目管理权限可能不生效。IAM鉴权优先于企业管理,如IAM用户同时拥有所有资源的E CS ReadOnlyAccess、企业项目A的ECS ReadOnlyAccess权限,用户可以查看所有ECS资源。 解决方法:请管理员根据情况在IAM控制台修改用户权限。
  • 忘记账号密码 在华为账号登录页面,单击“忘记密码”。 图3 忘记华为账号密码 输入账号名或注册账号的手机号/邮件地址,单击“下一步”。 图4 输入信息 如果您在2输入了注册账号的账号名/手机号/邮件地址,选择获取验证码。 如果无法接收验证码,请参考无法获取验证码进行处理。 找回密码的账号手机号/邮件地址不可用时,请联系人工客服获取帮助:中国大陆+864000955988、中国香港+852800931122,或提交工单。 按照界面提示填写验证信息,单击“下一步”。 按照页面提示,输入新密码并确认密码,单击“确定”。 由于华为账号涉及多项业务领域,如华为账号无法按照以上步骤找回时,建议您参考以下链接进行找回: https://consumer.huawei.com/cn/support/content/zh-cn15774338/ 单击“立即返回”,使用新设置的密码登录华为云。
  • Step2 构建成功的镜像注册到镜像管理模块 将Step1 在Notebook中构建一个新镜像中构建成功的 自定义镜像 注册到镜像管理中,方便后续使用。 登录ModelArts控制台,在左侧导航栏中选择“镜像管理”,单击“注册镜像”,进入注册镜像页面。 输入镜像源地址,选择架构和类型后,单击“立即注册”。 “镜像源”:地址为swr.cn-north-4-myhuaweicloud.com/custom_test/tensorflow2.1:1.0.0。其中custom_test/tensorflow2.1:1.0.0为8镜像构建脚本中设置的镜像地址。 “架构”:选择X86_64 “类型”:选择CPU 图7 注册镜像 注册完成后,可以在镜像管理页面查看到注册成功的镜像。
  • 模型包文件样例 模型包文件model.zip中需要用户自己准备模型文件,此处仅是举例示意说明,以一个手写数字识别模型为例。 Model目录下必须要包含推理脚本文件customize_service.py,目的是为开发者提供模型预处理和后处理的逻辑。 图6 推理模型model目录示意图(需要用户自己准备模型文件) 推理脚本customize_service.py的具体写法要求可以参考模型推理代码编写说明。 本案例中提供的customize_service.py文件具体内容如下: import logging import threading import numpy as np import tensorflow as tf from PIL import Image from model_service.tfserving_model_service import TfServingBaseService class mnist_service(TfServingBaseService): def __init__(self, model_name, model_path): self.model_name = model_name self.model_path = model_path self.model = None self.predict = None # 非阻塞方式加载saved_model模型,防止阻塞超时 thread = threading.Thread(target=self.load_model) thread.start() def load_model(self): # load saved_model 格式的模型 self.model = tf.saved_model.load(self.model_path) signature_defs = self.model.signatures.keys() signature = [] # only one signature allowed for signature_def in signature_defs: signature.append(signature_def) if len(signature) == 1: model_signature = signature[0] else: logging.warning("signatures more than one, use serving_default signature from %s", signature) model_signature = tf.saved_model.DEFAULT_SERVING_SIGNATURE_DEF_KEY self.predict = self.model.signatures[model_signature] def _preprocess(self, data): images = [] for k, v in data.items(): for file_name, file_content in v.items(): image1 = Image.open(file_content) image1 = np.array(image1, dtype=np.float32) image1.resize((28, 28, 1)) images.append(image1) images = tf.convert_to_tensor(images, dtype=tf.dtypes.float32) preprocessed_data = images return preprocessed_data def _inference(self, data): return self.predict(data) def _postprocess(self, data): return { "result": int(data["output"].numpy()[0].argmax()) }
  • Dockerfile模板 Dockerfile样例,此样例可以直接另存为一个Dockerfile文件使用。此处可以使用的基础镜像列表请参见推理专属预置镜像列表。 FROM swr.cn-north-4.myhuaweicloud.com/atelier/tensorflow_2_1:tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64-20221121111529-d65d817 # here create a soft link from '/home/ma-user/anaconda/lib/python3.7/site-packages/model_service' to '/home/ma-user/infer/model_service'. It’s the build-in inference framework code dir # if the installed python version of this base image is python3.8, you should create a soft link from '/home/ma-user/anaconda/lib/python3.8/site-packages/model_service' to '/home/ma-user/infer/model_service'. USER root RUN ln -s /home/ma-user/anaconda/lib/python3.7/site-packages/model_service /home/ma-user/infer/model_service USER ma-user # here we supply a demo, you can change it to your own model files ADD model/ /home/ma-user/infer/model/1 USER root RUN chown -R ma-user:ma-group /home/ma-user/infer/model/1 USER ma-user # default MODELARTS_SSL_CLIENT_VERIFY switch is "true". In order to debug, we set it to be "false" ENV MODELARTS_SSL_CLIENT_VERIFY="false" # change your port and protocol here, default is 8443 and https # ENV MODELARTS_SERVICE_PORT=8080 # ENV MODELARTS_SSL_ENABLED="false" # add pip install here # RUN pip install numpy==1.16.4 # RUN pip install -r requirements.txt # default cmd, you can chage it here # CMD sh /home/ma-user/infer/run.sh
  • 场景说明 针对ModelArts目前不支持的AI引擎,您可以通过自定义镜像的方式将编写的模型导入ModelArts,创建为模型。 本文详细介绍如何在ModelArts的开发环境Notebook中使用基础镜像构建一个新的推理镜像,并完成模型的创建,部署为在线服务。本案例仅适用于华为云北京四和上海一站点。 操作流程如下: Step1 在Notebook中构建一个新镜像:在ModelArts的开发环境Notebook中制作自定义镜像,镜像规范可参考创建模型的自定义镜像规范。 Step2 构建成功的镜像注册到镜像管理模块:将构建成功的自定义镜像注册到ModelArts的镜像管理模块中,方便下一步调试。 Step3 在Notebook中变更镜像并调试:在Notebook中调试镜像。 Step4 使用调试成功的镜像用于推理部署:将调试完成的镜像导入ModelArts的模型管理中,并部署上线。
  • 在续费管理页面开通自动续费 登录管理控制台。 单击“控制台”页面上方“费用”,在下拉菜单中选择“续费管理”。 进入“续费管理”页面。 自定义查询条件。 可在“自动续费项”页签查询已经开通自动续费的资源。 可对“手动续费项”、“到期转按需项”、“到期不续费项”页签的资源开通自动续费。 为包年/包月资源开通自动续费。 单个资源开通自动续费:选择需要开通自动续费的弹性云服务器,单击操作列“设为自动续费”。 图1 单个资源开通自动续费 批量资源开通自动续费:选择需要开通自动续费的弹性云服务器,单击列表左上角的“设为自动续费”。 图2 多个资源开通自动续费 选择续费时长,并根据需要设置自动续费次数,单击“开通”。 在“续费管理”页面开通的自动续费,自动续费周期以实际选择的续费时长以及自动续费次数为准。例如:您选择了续费时长3个月,不限次数,即在每次到期前自动续费3个月。 图3 开通自动续费
  • 续费相关的功能 包年/包月智能数据洞察(DataArts Insight)续费相关的功能如表1所示。 表1 续费相关的功能 功能 说明 手动续费 包年/包月云服务器从购买到被自动删除之前,您可以随时在智能数据洞察(DataArts Insight)控制台为云服务器续费,以延长 云服务器的使用 时间。 自动续费 开通自动续费后,云服务器会在每次到期前自动续费,避免因忘记手动续费而导致资源被自动删除。 在一台包年/包月云服务器生命周期的不同阶段,您可以根据需要选择一种方式进行续费,具体如图1所示。 图1 云服务器生命周期 智能数据洞察(DataArts Insight)实例从购买到到期前,处于正常运行阶段,资源状态为“运行中”。 到期后,资源状态变为“已过期”。 到期未续费时,智能数据洞察(DataArts Insight)首先会进入宽限期,宽限期到期后仍未续费,资源状态变为“已冻结”。 超过宽限期仍未续费将进入保留期,如果保留期内仍未续费,资源将被自动删除。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 在DataArts Insight到期前均可开通自动续费,到期前7日凌晨3:00首次尝试自动续费,如果扣款失败,每天凌晨3:00尝试一次,直至云服务器到期或者续费成功。到期前7日自动续费扣款是系统默认配置,您也可以根据需要修改此扣款日。
  • 计费构成分析 表1 阶梯计费说明 计费项 单价(元/用户/月) 付费周期 费用计算 说明 企业版 200 包年/包月 通用人数变更前:100(人)*1(月)*200(元/用户/月)=20000元 包月周期计算公式:人数*200*月数 175 包年/包月 通用人数变更后:200(人)*1(月)*175(元/用户/月)=35000元 包月周期计算公式:人数*175*月数 变更总费用计算:(新规格全周期价格-原规格全周期价格)*周期内剩余天数/周期总天数=(35000-20000)*16/31=5161.29元 由此可见,在3~4月份,该实例总共产生费用为:20000+5161.29=25161.29元
  • 计费模式 目前智能数据洞察(DataArts Insight)提供包年/包月的计费模式。 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。 阶梯计费:用户购买不同的通用用户数计费方式。 表1 企业版计费说明 计费项 周期 说明 企业版 包年/包月 包月周期计算公式:用户数*月单价 * 月数 包年周期计算公式:用户数*年单价 * 年数 表2 数据大屏计费说明 计费项 周期 说明 数据大屏 包年/包月 企业版默认赠送5个。 包月周期计算公式:数据大屏数量 * 月单价 * 月数 包年周期计算公式:数据大屏数量 * 年单价 * 年数 表3 嵌入式报表计费说明 计费项 周期 说明 嵌入报表 包年/包月 企业版默认赠送5个。 包月周期计算公式:嵌入报表数量 * 月单价 * 月数 包年周期计算公式:嵌入报表数量 * 年单价 * 年数 包年周期费用是月单价 * 10。
  • 计费项 目前智能数据洞察(DataArts Insight)的计费项由通用用户数、数据大屏、嵌入报表数组成。 表1 计费项 计费项 产品版本 计费项说明 适用的计费模式 计费公式 通用用户数 企业版 计费因子:通用用户个数。 包年/包月 通用用户个数*单价*购买时长。 数据大屏 企业版 计费因子:数据大屏发布个数。 包年/包月 数据大屏数量*单价*购买时长。 嵌入报表数 企业版 计费因子:嵌入报表数开通个数。 包年/包月 嵌入报表数*单价*购买时长。
  • 续费相关的功能 包年/包月智能数据洞察(DataArts Insight)续费相关的功能如表1所示。 表1 续费相关的功能 功能 说明 手动续费 包年/包月云服务器从购买到被自动删除之前,您可以随时在智能数据洞察(DataArts Insight)控制台为云服务器续费,以延长云服务器的使用时间。 自动续费 开通自动续费后,云服务器会在每次到期前自动续费,避免因忘记手动续费而导致资源被自动删除。 在一台包年/包月云服务器生命周期的不同阶段,您可以根据需要选择一种方式进行续费,具体如图1所示。 图1 云服务器生命周期 智能数据洞察(DataArts Insight)实例从购买到到期前,处于正常运行阶段,资源状态为“运行中”。 到期后,资源状态变为“已过期”。 到期未续费时,智能数据洞察(DataArts Insight)首先会进入宽限期,宽限期到期后仍未续费,资源状态变为“已冻结”。 超过宽限期仍未续费将进入保留期,如果保留期内仍未续费,资源将被自动删除。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。 在DataArts Insight到期前均可开通自动续费,到期前7日凌晨3:00首次尝试自动续费,如果扣款失败,每天凌晨3:00尝试一次,直至云服务器到期或者续费成功。到期前7日自动续费扣款是系统默认配置,您也可以根据需要修改此扣款日。
  • 方式一 登录 AOM 华为云官网。 在AOM产品简介下方单击“AOM2.0控制台”,即可进入AOM 2.0服务页面。 图1 登录AOM官网 在弹出的“通知”对话框中仔细阅读从AOM 1.0切换到AOM 2.0计费方式变化的说明。 单击“授权”,然后在“云服务授权”页面中仔细阅读授权声明后,勾选“我已阅读并同意授权声明”。 单击“免费开通服务并授权”,即可免费开通AOM 2.0服务。 在页面左侧导航栏单击任意一个功能名称,如“仪表盘”,可进入该功能的操作界面。
  • 配置告警行动规则 在“总览”页面切换为“应用视角”。 在快速入门区域,单击“配置告警行动规则”,进入“告警行动规则”页面。 在“告警行动规则”页签下,单击“创建告警行动规则”。 设置行动规则名称、类型等信息,参数说明如表8所示。 图11 创建告警行动规则 表8 告警行动规则参数说明 参数名称 说明 行动规则名称 行动规则的名称,只能由中文、数字、字母、下划线和中划线组成,且不能以下划线或中划线开头和结尾,最多可输入200个字符。 企业项目 所属的企业项目。 如果在全局页面设置为“ALL”,此处请从下拉列表中选择企业项目。 如果在全局页面已选择企业项目,则此处灰化不可选。 描述 行动规则的描述信息,最多可输入1024个字符。 行动规则类型 行动规则的类型。 指标或事件 当指标或事件满足对应的告警条件时,系统根据关联 SMN 主题与消息模板来发送告警通知。 日志 当日志数据满足对应的告警条件时,系统根据关联SMN主题与消息模板来发送告警通知。 行动方式 告警行动规则与SMN主题、消息模板关联的类型,请从下拉列表中选择。当前只支持“通知”类型。 主题 SMN主题,请从下拉列表中选择。 若没有合适的主题,请单击主题选择栏下方“创建主题”,在SMN界面创建。 消息模板 通知消息的模板,请从下列列表中选择。 若没有合适的消息模板,请单击消息模板选择栏右侧“创建消息模板”,新建消息模板。 设置完成后,单击“确定”。
  • 创建应用 登录AOM 2.0控制台。 在左侧导航栏单击“概览”,即可进入“概览”页面。 在“概览”页面切换为“应用视角”。 图1 切换视角 在快速入门区域,单击“创建应用”,进入“应用管理”页面。 创建应用。 单击右上角的“创建应用”,在弹出的“创建应用”页面中,设置创建应用的相关参数。 图2 创建应用 表1 创建应用参数说明 参数名称 说明 唯一标识 应用的唯一标识。 支持输入2~64个字符,只能由大小写字母、数字、下划线、中划线和点组成。 应用名称 应用的名称。 支持输入2~64个字符,只能由大小写字母、数字、下划线、中划线、点和中文字符组成。 企业项目 华为云企业项目,请从下列列表中选择。 如果现有的项目无法满足需求,可单击“创建项目”添加。 描述 应用的描述信息,最多可输入255个字符。 设置完成后,单击“确认”。 为创建的应用添加节点,包括组件和子应用。有以下两种方式: 应用创建完成后,单击“继续创建应用树节点”。 图3 创建子应用 在左侧导航栏中选择“应用管理”,进入“应用管理”页面。在左侧树节点的应用名称后,单击。 图4 应用树 配置节点信息,设置子节点类型和名称等信息。 图5 添加节点 表2 节点设置参数说明 参数类别 参数名称 说明 组件设置相关参数 组件名称 组件的名称。 支持输入2~64个字符,只能由大小写字母、数字、下划线、中划线、点和中文字符组成。 描述 组件的描述信息,最多可输入255个字符。 子应用设置相关参数 唯一标识 子应用的唯一标识。 支持输入2~64个字符,只能由大小写字母、数字、下划线、中划线和点组成。 子应用名称 子应用的名称。 支持输入2~64个字符,只能由大小写字母、数字、下划线、中划线、点和中文字符组成。 描述 子应用的描述信息,最多可输入255个字符。 同一个应用下,最多可创建3层子应用。 同一个应用下,最多可创建50个子应用。 同一个应用下,最多可创建50个组件。 设置完成后,单击“确认”。 根据主机、区域等信息为组件添加不同的环境,方便统一管理各资源或应用。 在左侧树节点,将光标移至待操作的组件名称后,单击。 在“添加环境”页面中,设置环境类型、主机类型等信息。 图6 添加环境 表3 添加环境 参数名称 说明 环境类型 环境的类型。目前支持环境类型有四种:开发、测试、预发布和生产。 主机类型 主机的类型。目前支持的主机类型有:LINUX和WINDOWS。 环境名称 环境的名称。 支持输入2~64个字符,只能由大小写字母、数字、下划线、中划线、点和中文字符组成。 区域 环境的区域,请从下拉列表中选择。 描述 环境的描述信息,最多可输入255个字符。 同一组件下最多可创建20个环境。 设置完成后,单击“确认”。 为组件创建对应环境后,即可为环境关联相关资源实例,后续可通过应用监控功能实时监控资源的使用情况。 在右侧选择需要的资源类型,建立应用与资源关联。 在左侧树节点选中待操作的环境,在右侧区域单击资源页签,在下方列表区域单击“关联资源”。 从资源列表中选择合适的资源实例。 资源列表仅展示与应用企业项目相同的资源。 图7 关联资源 设置完成后,单击“关联”。 如果关联的资源为 云服务器ECS 资源,需要单击“关联资源&安装Agent”,在关联资源后继续完成Agent安装。安装Agent的详情操作请参见安装UniAgent。
  • 操作流程 ECS主机安装 UniAgent:为AOM服务控制台所在Region区主机安装UniAgent,统一管理指标采集插件。 创建主机组:主机进行虚拟分组,便于分类管理、提升配置多个主机数据采集的效率。 接入弹性云服务器ECS:通过接入ECS,您可以为主机组安装Node Exporter并配置采集任务,采集到的指标会存储在ECS类型的Prometheus实例中,方便您管理。 配置指标告警规则:通过创建告警规则对ECS的指标设置告警阈值条件,当指标数据满足设置的告警阈值条件时产生告警。
  • 首次开通AOM 2.0并授权 注册账号并实名认证。 使用AOM 2.0前,需要先注册一个华为账号并进行实名认证。如果您已有一个华为账号,可直接跳过如下操作。 进入华为云官网,单击页面右上角的“注册”。 参考 注册华为账号 并开通华为云中操作,完成注册。 注册后参考实名认证完成个人或企业账号实名认证。 开通AOM 2.0。 使用AOM 2.0前,需要先开通AOM 2.0。如果您已开通AOM 2.0,可直接跳过如下操作。 登录AOM华为云官网。 在AOM产品简介下方单击“AOM2.0控制台”,进入AOM 2.0服务页面。 在弹出的“通知”对话框中仔细阅读从AOM 1.0切换到AOM 2.0计费方式变化的说明。 单击“授权”,然后在“云服务授权”页面中仔细阅读授权声明后,勾选“我已阅读并同意授权声明”。 单击“免费开通服务并授权”,即可免费开通AOM 2.0服务。 为用户添加 应用运维管理 AOM和云容器引擎CCE的操作权限。 您需要有AOM的管理员权限“AOM FullAccess”和CCE的管理员权限“CCE FullAccess”,具体操作请参考创建用户并授权使用AOM和集群权限(IAM授权)。
  • 操作流程 开通AOM 2.0并授权。 容器监控:在云容器引擎 CCE购买集群和节点后,自动安装ICAgent插件,将CCE集群指标上报到AOM,用户无需手动接入。 配置告警行动规则:通过创建告警行动规则关联SMN主题与消息模板,当CCE的指标数据满足对应的告警条件时,系统根据关联SMN主题与消息模板来发送告警通知。 配置告警:通过创建告警规则对CCE的指标设置告警阈值条件,当指标数据满足设置的告警阈值条件时产生告警。
  • 基本概念 使用API涉及的常用概念 账号 用户注册华为云时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用他们进行日常管理工作。 用户 由账号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看账号ID和用户ID。通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 详情请参见区域和可用区。 可用区(AZ,Availability Zone) AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 华为云的区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中购买资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。 图1 项目隔离模型 同样在我的凭证下,您可以查看项目ID。 企业项目 企业项目是项目的升级版,针对企业不同项目间资源的分组和管理,是逻辑隔离。企业项目中可以包含多个区域的资源,且项目中的资源可以迁入迁出。 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 父主题: 使用前必读
  • 默认情况下空的input split不创建partition 说明: Spark2.4.x:默认情况下空的input split将创建partition。 Spark3.3.x:默认情况下空的input split不创建partition。 Spark3.3.x时spark.hadoopRDD.ignoreEmptySplits=true。 升级引擎版本后是否对作业有影响: 有影响,需要判断是否使用分区名做业务判断。
  • Spark3.3.x不再支持将Apache Mesos作为资源管理器 说明: Spark2.4.x:Spark 2.4.x版本中使用Apache Mesos作为资源管理器。 Spark3.3.x:Spark3.3.x不再支持将Apache Mesos作为资源管理器。 升级引擎版本后是否对作业有影响: 功能增强,Spark 2.4.x版本中使用Mesos作为资源管理器,升级到Spark 3.3.x后,你需要考虑切换到其他资源管理器。
  • 以command命名DataFrameWriter触发的查询 在Spark 3.2.x版本中,当DataFrameWriter触发的查询执行被发送给QueryExecutionListener时,这些查询的名称总是被设置为command。而在Spark 3.1及更早版本中,这些查询的名称可能是save、insertInto或saveAsTable之一,这取决于具体的操作。 说明: DataFrameWriter触发的查询执行在发送到QueryExecutionListener时,始终以command命名 Spark2.4.x:名称为save、insertInto、saveAsTable中的一个 Spark3.3.x:command命名 升级引擎版本后是否对作业有影响: 有影响
  • Spark将不可为null的模式转换为可空 说明: 在Spark 2.4.x版本中,当用户指定的schema包含不可为空的字段时,Spark会将这些不可为null的模式转换为可空的。 但是在Spark 3.3.x版本中,Spark尊重用户指定的schema中的nullability,即如果字段被定义为不可为空,Spark会保持该配置要求,不会自动转换为可空的字段。 Spark2.4.x:在Spark 2.4.x版本中,当用户指定的schema包含不可为空的字段时,Spark会将这些不可为null的模式转换为可空的。 Spark3.3.x:Spark不会自动转换为可空的字段。 如果希望在Spark 3.3.x版本中恢复到Spark 2.4.x版本的执行方式,您可以通过将 spark.sql.legacy.respectNullabilityInTextDatasetConversion设置为true来实现。 升级引擎版本后是否对作业有影响: 有影响。 示例代码: 执行sql: spark.read.schema(StructType( StructField("f1", LongType, nullable = false) :: StructField("f2", LongType, nullable = false) :: Nil) ).option("mode", "DROPMALFORMED").json(Seq("""{"f1": 1}""").toDS).show(false); Spark 2.4.5 |f1 |f2 | +---+---+ |1 |0 | Spark 3.3.1 |f1 |f2 | +---+----+ |1 |null|
  • PySpark-PyArrow支持版本变更 说明: Spark2.4.x:在Spark 2.4.x版本中,PySpark并没有要求指定PyArrow的版本。 Spark3.3.x:从Spark 3.3.x版本开始,PySpark需要0.12.1或更高版本的PyArrow才能使用PyArrow相关功能,如Pandas_udf、toPandas等。 升级引擎版本后是否对作业有影响: 依赖版本变化,有影响,需要排查是否涉及。
  • Spark3.3.x不支持v1表 说明: Spark2.4.x支持datasourcev1、datasourcev2表。Spark3.3.x不支持v1表。 具体说明请参考 DLI datasourceV1表和datasourceV2表。 Spark2.4.x:支持datasourcev1、datasourcev2表。 Spark3.3.x:不支持支持datasourcev1表。 升级引擎版本后是否对作业有影响: 有影响,建议在Spark 2.4.5版本整改到v2表后再升级Spark 3.3.1,具体操作指导可以参考DLI datasourceV1表和datasourceV2表的中的示例。
  • eventlog的压缩格式设置为zstd 说明: Spark3.3.x版本中,spark.eventLog.compression.codec的默认值被设置为zstd,Spark在压缩事件日志时将不再支持使用spark.io.compression.codec的参数值。 Spark2.4.x:使用spark.io.compression.codec的参数值作为eventlog的压缩格式。 Spark3.3.x:spark.eventLog.compression.codec默认设置为zstd。 升级引擎版本后是否对作业有影响: 有影响,eventlog的压缩格式发生变化。
  • PySpark-pandas支持版本变更 说明: Spark2.4.x:在Spark 2.4.x版本中,PySpark并没有要求指定Pandas的版本。 Spark3.3.x:从Spark 3.3.x版本开始,PySpark需要0.23.2或更高版本的pandas才能使用pandas相关功能,如toPandas、 createDataFrame from pandas DataFrame等。 升级引擎版本后是否对作业有影响: 依赖版本变化,有影响,需要排查是否涉及。
  • 新增支持Parallel Multi-Insert 说明: Spark3.3.x版本中新增支持Parallel Multi-Insert,如果SQL存在multi-insert的场景,在同一个SQL里插入到多个表中,这类SQL在Spark开源本身是串行处理的,性能受到制约。针对这类SQL,Spark3.3.x版本中DLI新增支持multi-insert并行化的优化处理,可以让所有的insert都并发执行,提升处理性能。 在使用时需配置开启以下功能开关(默认关闭): spark.sql.lazyExecutionForDDL.enabled=true spark.sql.parallelMultiInsert.enabled=true 升级引擎版本后是否对作业有影响: DLI功能增强,增强multi-insert并行化特性,提升作业运行的可靠性。
  • 新增支持Enhance Reuse Exchange 说明: Spark3.3.x版本中新增支持Enhance Reuse Exchange,SQL的对应plan存在sort merge join可重用的条件,通过打开相应开关spark.sql.execution.enhanceReuseExchange.enabled,可以实现SMJ plan node重用。 在使用时需配置开启以下功能开关(默认关闭): spark.sql.execution.enhanceReuseExchange.enabled=true 升级引擎版本后是否对作业有影响: DLI功能增强。
共100000条