华为云用户手册

  • 应用场景 在使用ComfyUI进行AI绘图的过程中,常需要对模型和节点进行管理,ComfyUI Manager是一个具备集成功能和便利的扩展工具,用户可使用ComfyUI Manager工具在线安装与管理各类插件。在FunctionGraph中使用ComfyUI Manager,需要公网NAT网关和弹性公网IP提供公网访问能力,本例仅提供网络环境的配置指导,ComfyUI Manager相关操作方法请参考开源教程。
  • 步骤三:使用默认模型和临时 域名 进行AI绘画 如图5所示,单击应用详情界面的“开始使用”,进入Stable Diffusion WebUI界面。首次加载冷启动时间会持续30s左右,如遇到加载超时问题,可以通过刷新页面解决。 图5 开始使用Stable Diffusion 在“文生图”标签下,输入相应的提示词和反向提示词(中英文均可),单击右侧的“生成”按钮,如图6所示,即可生成与提示词描述相符的图像。 图6 Stable Diffusion WebUI界面 通过上述步骤创建的应用,仅可使用应用内置的默认模型进行AI绘画,如果您需要使用更多自定义模型,需要为应用挂载外部文件系统为应用提供持续使用能力,操作步骤请参考上传自定义模型(可选)。
  • 步骤一:为FunctionGraph创建云服务委托 使用FunctionGraph应用中心部署Stable Diffusion应用,需FunctionGraph服务与其他云服务协同。因此,部署前须配置委托,允许FunctionGraph使用必要的其他云服务资源。 登录 统一身份认证 服务控制台,左侧导航栏选择“委托”,进入“委托”页面后,右上角单击“创建委托”。 在“创建委托”页面,配置如下参数: 委托名称:填写“severless_trust”。 委托类型:选择“云服务”。 云服务:选择“ 函数工作流 FunctionGraph”。 持续时间:选择“永久”。 描述(可选):填写“AI绘画应用”。 单击“完成”,系统提示创建成功,单击“立即授权”,进入“授权”界面。 在“选择策略”界面根据具体需求搜索表1中的策略并勾选,勾选完成后单击“下一步”。 表1 策略及相关说明 策略 策略权限说明 是否必选 SWR Admin 容器镜像服务 (SWR)管理员,拥有该服务下的所有权限。 必选。 VPC Administrator (系统将同时勾选该系统角色依赖的Server Administrator系统角色,无需手动取消) VPC Administrator:虚拟私有云服务管理员。 Server Administrator:服务器管理员。 上传和使用自定义模型时必选。 SFS FullAccess 弹性文件服务所有权限。 上传和使用自定义模型挂载SFS文件系统时必选。 SFS Turbo FullAccess 弹性文件服务SFS Turbo的所有权限。 上传和使用自定义模型挂载SFS文件系统时必选。 在“设置最小授权范围”界面如图1所示,选择“指定区域项目资源”,勾选“cn-east-3 [华东-上海一]”,单击“确定”。 图1 指定区域项目资源 系统提示授权成功,单击“完成”可查看授权记录。
  • 步骤三:使用AI绘画Stable-Diffusion模板创建应用 登录函数工作流控制台,区域选择“华东-上海一”。在左侧导航栏选择“应用中心”,单击“创建应用”,进入模板选择页面。 如图2所示,找到“AI绘画Stable-Diffusion”模板,单击“使用模板”,请仔细阅读弹出的说明后进行勾选操作,单击“同意并继续创建”。 图2 选择使用AI绘画Stable-Diffusion模板 如果系统弹出“服务开通”提示弹窗,请阅读说明后单击“立即开通”。 进入“应用配置”页面,填写应用参数。完成填写后如图3所示,单击页面右下角的“立即创建”按钮。 应用名称:自定义填写或采用默认名称。 委托名称:选择步骤一:为FunctionGraph创建云服务委托创建的“severless_trust”委托。 APIG实例:选择步骤二:购买专享版APIG实例创建的APIG实例。 图3 应用配置 等待应用创建完成,创建成功的应用包含函数、API网关、触发器等资源,如图4所示,其中函数服务的关键资源功能说明请参考表2。 为方便快速体验,应用中心会为您分配一个临时域名,此临时域名仅可用于测试使用,有效期30天。若想开放应用长期访问,需绑定自定义域名,具体部署步骤请参考绑定自定义域名(可选)。 图4 应用创建完成 表2 关键函数服务功能 函数资源逻辑名称 功能说明 stable_diffusion AI绘图功能主体,可通过其APIG触发器访问Stable Diffusion WebUI界面。 custom_models_tool 可通过其APIG触发器管理Stable Diffusion应用资源,如模型、插件的上传和图片下载等。
  • 附录:镜像构建Dockerfile参考 如需自定义构建镜像,可参考以下Dockerfile进行操作。 FROM nvidia/cuda:11.6.2-base-ubuntu20.04 ENV HOME=/home/paas ENV GROUP_ID=1003 ENV GROUP_NAME=paas_user ENV USER_ID=1003 ENV USER_NAME=paas_user ENV OLLAMA_HOST=0.0.0.0:8000 RUN mkdir -m 550 ${HOME} && groupadd -g ${GROUP_ID} ${GROUP_NAME} && useradd -u ${USER_ID} -g ${GROUP_ID} ${USER_NAME} RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/* RUN curl -fsSL https://ollama.com/install.sh | sh RUN chown -R ${USER_ID}:${GROUP_ID} ${HOME} RUN find ${HOME} -type d | xargs chmod 775 RUN ollama serve & \ sleep 15 && \ ollama pull deepseek-r1:14B USER ${USER_NAME} WORKDIR ${HOME} EXPOSE 8000 ENTRYPOINT ["ollama", "serve"]
  • 操作流程 表2介绍通过FunctionGraph,部署DeepSeek-R1蒸馏模型的总体操作流程。 表2 操作流程 操作流程 说明 步骤一:创建容器镜像函数 通过函数工作流控制台,创建容器镜像HTTP函数作为DeepSeek-R1蒸馏模型的镜像。 如需自定义构建镜像,可参考附录:镜像构建Dockerfile参考进行操作。 步骤二:创建APIG专享版触发器 购买并创建函数的APIG专享版触发器。 步骤三:配置客户端开始AI对话 下载并配置第三方客户端,部署DeepSeek-R1蒸馏模型开始AI对话,可选择以下任一客户端进行部署: 方式一:ChatBox(支持Windows、macOS、Linux、安卓、IOS、Web)(推荐使用) 方式二:AnythingLLM(支持Windows、macOS、Linux)
  • 步骤二:使用默认模型和临时域名进行AI对话 如图3所示,单击应用详情界面的“开始使用”,进入ChatGLM3 WebUI界面。首次加载冷启动时间会持续30s左右,请耐心等待,如遇到加载超时问题,可以通过刷新页面解决。 图3 开始使用 本应用内置模型为ChatGLM3-6B大模型。如图4所示在文本框处输入文字(支持中英双语),单击下方的“Submit”,即可开始与AI进行对话。 图4 使用ChatGLM3进行AI对话 如需使用更多自定义模型,需要为应用挂载外部文件系统,操作步骤请参考上传与使用自定义模型(可选)。
  • 步骤一:使用AI对话模板创建应用 登录函数工作流控制台,区域选择“华东-上海一”。在左侧导航栏选择“应用中心”,单击“创建应用”,进入模板选择页面。 如图1所示,找到“AI对话ChatGLM3”模板,单击“使用模板”,请仔细阅读弹出的说明后进行勾选操作,单击“同意并继续创建”。 图1 AI对话ChatGLM3模板 如果系统弹出“服务开通”提示弹窗,请阅读说明后单击“立即开通”。 进入“应用配置”页面,填写应用基本信息和参数配置信息: 应用名称:自定义填写或使用默认名称,本例使用默认名称。 委托名称:选择创建的“severless_trust”委托。 模式选择:选择“WebUI”。 APIG实例:选择步骤三:购买专享版APIG实例创建的APIG实例。 填写完成后如图2所示,单击“立即创建”。 图2 AI对话ChatGLM3应用配置 等待应用创建完成,创建成功的应用包含函数服务和专享版API网关资源,其中函数服务的关键资源功能说明请参考表1。 为方便快速体验,应用中心会为您分配一个临时域名,此临时域名仅可用于测试使用,有效期30天。若想开放应用长期访问,需在应用总览页面的域名提示信息中单击“去绑定”为应用绑定自定义域名,具体操作方案请参考配置API的调用域名。 表1 关键函数服务功能 函数资源逻辑名称 功能说明 chatglm 对话语言模型功能主体,可通过其APIG触发器访问ChatGLM3 WebUI界面。 custom_models_tool 可通过其APIG触发器管理自定义模型资源。
  • 步骤三:上传代码包和权重文件 上传安装依赖软件训练代码AscendCloud-LLM-6.5.902-xxx.zip到主机中,包获取路径请参见表1。 将权重文件上传到Lite Server机器中。权重文件的格式要求为Huggingface格式。开源权重文件获取地址请参见支持的模型列表。 权重要求放在磁盘的指定目录,保证模型文件、权重文件(如LFS文件)已完整下载。 修改权重(tokenizer)文件,以下模型需修改,根据所选框架及模型修改相应文件,详情参考tokenizer文件说明。 Llama-Factory:glm4-9b模型
  • 步骤六:启动容器镜像 启动容器镜像前请先按照参数说明修改${}中的参数。可以根据实际需要增加修改参数。启动容器命令如下。 export work_dir="自定义挂载的工作目录" #容器内挂载的目录,例如/home/ma-user/ws export container_work_dir="自定义挂载到容器内的工作目录" export container_name="自定义容器名称" export image_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 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用户家目录。 driver及npu-smi需同时挂载至容器。 不要将多个容器绑到同一个NPU上,会导致后续的容器无法正常使用NPU功能。 ${image_name} 为docker镜像的ID,在宿主机上可通过docker images查询得到。 --shm-size:表示共享内存,用于多进程间通信。由于需要转换较大内存的模型文件,因此大小要求200g及以上。 通过容器名称进入容器中。启动容器时默认用户为ma-user用户。 docker exec -it ${container_name} bash
  • 前提条件 已开通Lite Server资源,并确保机器已开通,密码已获取,能通过SSH登录,不同机器之间网络互通。 (多机运行分布式训练)已购买可挂载的存储硬盘资源,以实现多机共同访问同一存储硬盘资源,存储方案请参考配置Lite Server存储;支持在裸金属服务器中挂载的有弹性文件服务SFS和云硬盘EVS。 安装过程需要连接互联网git clone,确保容器可以访问公网。 当容器需要提供服务给多个用户,或者多个用户共享使用该容器时,应限制容器访问Openstack的管理地址(169.254.169.254),以防止容器获取宿主机的元数据。具体操作请参见禁止容器获取宿主机元数据。
  • 步骤一:检查环境 SSH登录机器后,检查NPU设备检查。运行如下命令,返回NPU设备信息。 npu-smi info # 在每个实例节点上运行此命令可以看到NPU卡状态 npu-smi info -l | grep Total # 在每个实例节点上运行此命令可以看到总卡数,用来确认对应卡数已经挂载 npu-smi info -t board -i 1 | egrep -i "software|firmware" #查看驱动和固件版本 如出现错误,可能是机器上的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
  • 前提条件 已注册华为云并实名认证,如果还没有华为账号,请参考以下步骤创建。 打开华为云网站。 单击“注册”,根据提示信息完成注册。 注册成功后,系统会自动跳转至您的个人信息界面。 参考实名认证完成个人或企业账号实名认证。 已购买CodeArts体验版套餐或已购买CodeArts Req基础版套餐。 已购买CodeArts体验版套餐,如果还没有购买,可参考购买CodeArts套餐。 已购买CodeArts Req基础版套餐,如果还没有购买,可参考购买CodeArts Req服务。 拥有创建项目的权限,满足如下条件之一即可: 拥有Tenant Administrator角色权限。为用户授予Tenant Administrator角色权限的操作方法请参考创建用户组并授权。 拥有CodeArts项目创建者权限。为用户授予CodeArts项目创建者权限的操作方法请参考设置CodeArts项目创建者。
  • 全面 支持Java/C++/JavaScript/Go/Python/C#/TypeScript/ CSS /HTML/PHP/LUA/RUST/Shell/KOTLIN/SCALA/ArkTS/SQL等多种主流开发语言。 支持代码规范检查、安全检查、代码重复率和圈复杂度检查。 兼容CWE/HUAWEI/OWASP TOP 10/ISO 5055/SANS TOP 25/CERT/MISRA/PCI DSS/AUTOSAR/GJB安全标准。
  • 支持代码安全检查 支持场景 软件开发阶段对代码质量和安全问题进行自动化检查,支持内置安全规范、要求到软件生产作业流,帮助企业软件生产安全。 提供深度代码安全检查能力,帮助政务云运营者和大企业管控ISV软件安全质量,构建供应链安全体系。 能力说明 提供跨函数、跨文件检查能力,提供污点分析检查能力。 支持注入类、信息泄露类(AccessKey)等TOP安全漏洞检查。 支持华为云编程规范,兼容支持CWE/HUAWEI/OWASP TOP 10/ISO 5055/SANS TOP 25/CERT/MISRA检查。
  • CodeArts Check IDE插件介绍 CodeArts Check IDE插件致力于守护开发人员代码质量,成为开发人员的助手和利器。 本IDE插件秉承极简、极速、即时看护的理念,提供业界规范(含华为云)检查、代码风格一键格式化及代码自动修复功能。 打造了代码检查“快车道”,实现精准、快速检查前移,与Check云端服务共同构筑了三层代码防护体系。 内置的轻量级扫描规则作为云端规则的子集,可以在云端查看到所有IDE端规则,实现安全扫描左移,并且覆盖了30多种缺陷分类。 当前CodeArts Check IDE插件支持Java、C、C++、Python,并已上线4个主流IDE平台:VSCode IDE、Intellij IDEA、CodeArts IDE、Cloud IDE。
  • 代码安全检查增强包介绍 华为代码安全检查增强包里安全检查能力作为深度价值特性,能深度识别代码中安全风险和漏洞,提供了套餐包内规则不覆盖的安全类场景,比如数值错误、加密问题、数据验证问题等。针对业界的安全漏洞检测项提供了更深入的分析能力,比如,跨函数、跨文件、污点分析、语义分析等。 当前代码安全检查增强包一共有284条规则,涵盖Java语言61个, C++ 语言199个, Go语言8个, Python语言16个。 代码安全检查增强包里安全检查能力支持的检查项如下: 覆盖符合污点分析传播模型的漏洞检查,如命令注入、SQL注入、路径遍历、信息泄露等。 覆盖业界常见的安全漏洞检测项,如命令注入、LDAP注入、SQL注入、开放重定向漏洞、数值处理、信息泄露等。 支持密码、API秘钥和访问令牌硬编码检查能力。 支持AcessKey泄露检查。 如果某租户购买了1个增强包,该租户账号及其所有 IAM 账号均可使用所有增强包相关的规则。 代码安全检查增强包对于扫描次数和扫描的代码行数没有任何限制,仅对代码检查任务并发数有限制,即,买1个增强包代表该租户账号可以扫描1个安全增强特性包规则的代码检查任务,其余任务需要排队等待;买2个增强包表示可同时扫描2个代码检查任务 ……买n个增强包表示可同时扫描n个代码检查任务。当前最多可以买100个。购买方法可参考购买增值特性。 增强包不可单独购买,需要在购买了专业版或企业版CodeArts之后才会生效,如果购买的CodeArts套餐过期,代码检查特性增强包会失效。
  • 云服务代码检查功能列表 表1 云服务代码检查功能列表 功能 描述 编码问题检查 用编码问题检查规则集,对自己的代码进行编码问题缺陷检查。 代码安全检查 用代码安全检查规则集,对自己的代码进行代码安全风险和缺陷检查。 代码风格检查 用代码风格检查规则集,检查自己的代码是否匹配选定风格。 代码健康度评分 一个综合性统一指标,与告警影响度、告警数量、代码量都有关系。自动计算代码健康度分数。 问题管理 通过问题管理中的问题描述、问题状态、检查规则、文件路径、源码以及修改建议等,对检查出来的问题进行处理。 代码圈复杂度 通过代码圈复杂度报表评估代码质量风险。 NBNC代码行 代码检查支持扫描的文件代码行,不包括空行和注释行。 代码重复率 通过代码重复率报表评估代码质量风险。 定时执行检查 提供每周、每日定时检查代码功能,让用户休息编译两不误。 检查结果通知 检查完成后,通过邮件通知和 消息通知 相关人员检查结果,便于进行及时处理。 多种语言的代码检查 包括Java/C++/JavaScript/Go/Python/C#/TypeScript/ CS S/HTML/PHP/LUA/RUST/Shell/KOTLIN/SCALA/ArkTS/SQL。
  • 基本概念 表1 代码检查服务基本概念 词汇 定义 重复率 重复行数是指涉及至少一次重复的代码行数;重复块是指包含重复行的代码块(最小重复块定义:Java语言连续10行重复,其它语言10行中连续100个字符重复算一个重复块);重复率=重复行/代码总行数(不包含空行与注释)。 规则 应用于检查某类代码问题。提供规则说明,如代码缺陷影响、修改建议。 规则集 针对具体语言而定义的检查规则集合,提高用户代码质量。 圈复杂度 圈复杂度是一种代码复杂度的衡量标准,与其可维护性和可测试性之间存在相关性,这意味着在圈复杂度较高的文件中,重构代码出错的概率较高。代码平均圈复杂度 = 总圈复杂度/函数数。具体风险评估建议如下: 1~5:极低风险 6~10:低风险 11~20:中风险 21~50:高风险 51+:极高风险 NA:CodeArts Check不支持检查该语言 SDLC 软件开发生命周期(Software Development Life Cycle)。 问题展示 准确定位到问题所在代码行,用户可以在线查看并分析代码问题。 延迟上线 在工具版本升级后,由于代码检查服务检查引擎的能力提升,可能会出现新的缺陷。但新检查出来的缺陷,不会计算到正式缺陷中,开发者拥有60天的缓冲周期对代码进行修改,周期内没有修改或者屏蔽的缺陷,在周期结束后后会计算到正式缺陷中。 执行计划 定义代码检查任务自动触发的方式。通过触发器,使代码检查的自动化执行更加灵活易用。
  • 预置任务简介 样例项目中预置了以下4个代码检查任务。 表1 预置任务 预置任务 任务说明 phoenix-codecheck-worker 检查Worker功能对应代码的任务。 phoenix-codecheck-result 检查Result功能对应代码的任务。 phoenix-codecheck-vote 检查Vote功能对应代码的任务。 phoenix-sample-javas 检查整个代码仓库对应的JavaScript代码的任务。 本章节以任务“phoenix-codecheck-worker”为例进行讲解。
  • 前提准备 联系技术支持获取UCCP插件的代码开发样例包。 已参考自定义购买ECS购买本实践使用的弹性云服务器。 代码检查服务接入的自定义执行机只支持EulerOS2.5操作系统。 接入的自定义执行机中已安装Git-lfs,若未安装,可参考以下示例安装Git-lfs。本示例以使用命令的方式安装为例。 在执行机上执行以下命令。 # 下载 wget -O git-lfs.tar.gz https://github.com/git-lfs/git-lfs/releases/download/v3.4.1/git-lfs-linux-amd64-v3.4.1.tar.gz # 解压 tar -zxvf git-lfs.tar.gz # 进入解压后的目录 cd git-lfs-3.4.1 # 执行安装脚本 sh install.sh # 验证 git lfs version 已挂载云硬盘。
  • 操作流程 表1 操作流程 流程 说明 新建项目 为本实践新建项目。 新建自定义执行机资源池 为本实践新建所需的自定义执行机资源池。 开发UCCP插件 开发UCCP插件,用于导入自定义规则。 将第三方引擎和插件导入执行机 将第三方引擎和插件导入执行机。 上传自定义规则 在CodeArts Check中服务上传自定义规则。 新建CodeArts Repo代码仓 为本实践新建存储代码的代码仓。 创建代码检查任务 为本实践创建代码检查任务。 配置代码检查任务 配置代码检查任务使用自定义执行机和自定义规则。 查看检查结果 查看代码检查结果。
  • 创建代码检查任务 在代码检查任务列表页,单击“新建任务”,按照如下表格配置参数。 表4 代码检查任务参数说明 参数 说明 归属项目 创建代码检查任务所属项目中创建的项目名称“check-bestpractice”。默认填写,无需配置。 代码源 选择需要检查的代码来源。选择“Repo”。 任务名称 代码检查任务名称,可自定义。例如:CheckTask01。 仓库 选择新建CodeArts Repo代码仓中创建的代码仓“custom_repo”。 分支 保持默认“master”即可。 检查语言 选择“Java”。 单击“新建任务”,完成代码检查任务的创建。
  • 将第三方引擎和插件导入执行机 进入执行机“/opt/cloud/”目录,执行mkdir -p /opt/cloud/third_party_tools/v1/plugins命令,创建“third_party_tools/v1/plugins”目录。 在自定义执行上将开发完成的uccp插件放入工具插件路径“/opt/cloud/third_party_tools/v1/plugins”,然后执行以下命令更改权限。 chmod -R 777 [所换包的路径] & chown -R slave1:slave1 [所换包的路径] & 将工具包放入工具路径“/opt/cloud/third_party_tools/v1/tools”,然后执行以下命令更改权限。 chmod -R 777 [所换包的路径] & chown -R slave1:slave1 [所换包的路径] & 上述插件路径和工具路径中的“v1”代表“版本号”。可以同时存在多个版本,例如“/opt/cloud/third_party_tools/v1/plugins”、“/opt/cloud/third_party_tools/v2/plugins”、“/opt/cloud/third_party_tools/v3/plugins”。在执行任务时,会选择最大的版本号执行任务。例如在这里会选择/opt/cloud/third_party_tools/v3/plugins下的插件来执行任务。此规则同样适用于“tools”。
  • StarRocks简介 StarRocks是一款高性能分析型 数据仓库 ,使用向量化、MPP架构、CBO、智能物化视图、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。 StarRocks既支持从各类实时和离线的数据源高效导入数据,也支持直接分析 数据湖 上各种格式的数据。 StarRocks兼容MySQL协议,可使用MySQL客户端和常用BI工具对接进行数据分析,同时StarRocks具备水平扩展、高可用、高可靠、易运维等特性,广泛应用于实时数仓、OLAP报表、数据湖分析等场景。 更多相关介绍请参见StarRocks。 该组件当前为公测阶段,若需使用需联系技术支持申请白名单开通。
  • StarRocks基本概念 在StarRocks中,数据都以表(Table)的形式进行逻辑上的描述。 StarRocks中的表由行和列构成,每行数据对应用户一条记录,每列数据具有相同的数据类型。所有数据行的列数相同,可以动态增删列。在StarRocks中,一张表的列可以分为维度列(也称为Key列)和指标列(也称为Value列),维度列用于分组和排序,指标列的值可以通过聚合函数sum、count、min、max、hll_union_agg和bitmap_union等累加起来。 列式存储 在StarRocks中,表数据按列存储。物理上,一列数据会经过分块编码、压缩等操作,然后持久化存储到非易失设备上。但在逻辑上,一列数据可以看成是由相同类型的元素构成的一个数组, 一行数据的所有列值在各自的数组中按照列顺序排列,即拥有相同的数组下标。数组下标是隐式的,不需要存储。表中所有的行按照维度列,做多重排序,排序后的位置就是该行的行号。 索引 StarRocks通过前缀索引 (Prefix Index) 和列级索引,能够快速找到目标行所在数据块的起始行号。 加速处理 StarRocks通过预先聚合、分区分桶、物化视图、列级索引等机制实现数据的加速处理。 数据模型 StarRocks支持四种数据模型,分别是明细模型(Duplicate Key Model)、聚合模型(Aggregate Key Model)、更新模型(Unique Key Model)和主键模型(Primary Key Model)。 这四种数据模型能够支持多种数据分析场景,例如 日志分析 、数据汇总分析、实时分析等。创建表时,您需要指定数据模型(Data Model),当数据导入至数据模型时,StarRocks会按照排序键对数据进行排序、处理和存储。四种数据模型介绍如下: 明细模型 明细模型是StarRocks默认的建表模型。如果在建表时未指定任何模型,默认创建明细类型的表。 聚合模型 建表时,支持定义排序键和指标列,并为指标列指定聚合函数。当多条数据具有相同的排序键时,指标列会进行聚合。在分析统计和汇总数据时,聚合模型能够减少查询时所需要处理的数据,提升查询效率。 更新模型 建表时,支持定义主键和指标列,查询时返回主键相同的一组数据中的最新数据。相对于明细模型,更新模型简化了数据导入流程,能够更好地支撑实时和频繁更新的场景。 主键模型 主键模型支持分别定义主键和排序键。数据导入至主键模型的表中时,先按照排序键排序后再存储。查询时返回主键相同的一组数据中的最新数据。相对于更新模型,主键模型在查询时不需要执行聚合操作,并且支持谓词和索引下推,能够在支持实时和频繁更新等场景的同时,提供高效查询。 数据分布 建表时,您可以通过设置合理的分区和分桶,实现数据均匀分布和查询性能提升。数据均匀分布是指数据按照一定规则划分为子集,并且均衡地分布在不同节点上。查询时能够有效裁剪数据扫描量,最大限度地利用集群的并发性能,从而提升查询性能。
  • StarRocks架构 StarRocks整体架构如下图所示,FE和BE节点可以水平无限扩展。 图1 StarRocks架构 表1 StarRocks节点及角色说明 名称 说明 Client Application StarRocks兼容MySQL协议,支持标准SQL语法,用户可通过各类MySQL客户端和常用BI工具对接。 SRFE StarRocks的前端节点,主要负责管理元数据、管理客户端连接、进行查询规划、查询调度等工作。 SRBE StarRocks的后端节点,主要负责数据存储和SQL计算等工作。 Leader Leader从Follower中自动选出,FE Leader提供元数据读写服务,Follower和Observer只有读取权限,无写入权限。 Follower Follower只有元数据读取权限,无写入权限,Follower参与Leader选举。 Observer Observer主要用于扩展集群的查询并发能力,可选部署。Observer不参与选主,不会增加集群的选主压力。
  • 组件及版本号信息(已下线版本) MRS 已下线集群版本配套的组件及版本号信息如表2所示。 表2 MRS组件版本信息(已下线版本) MRS支持的组件 MRS 1.5.1 MRS 1.6.3 MRS 1.7.2 MRS 2.0.5(适用于MRS 2.0.x版本) MRS 1.8.10(适用于MRS 1.8.x) MRS 2.1.0(适用于MRS 2.1.x) MRS 3.0.5 Alluxio - - - - - - 2.3.0 CarbonData 1.3.1 1.3.1 1.3.1 1.5.1 1.6.1(MRS 1.8.10) 1.3.1(MRS 1.8.7及之前) 1.6.1(MRS 2.1.0) 2.0.0(MRS 2.1.1及之后) 2.0.1 ClickHouse - - - - - - 21.3.4.25 DBService 1.0.0 1.0.0 1.0.0 1.0.0 1.0.0 1.0.0 2.7.0 Flink - - - - 1.7.0 1.7.0 1.10.0 Flume 1.6.0 1.6.0 1.6.0 1.6.0 1.6.0 1.6.0 1.9.0 HBase 1.0.2 1.3.1 1.3.1 2.1.1 1.3.1 2.1.1 2.2.3 HDFS 2.7.2 2.7.2 2.8.3 3.1.1 2.8.3 3.1.1 3.1.1 Hive 1.2.1 1.2.1 1.2.1 3.1.0 1.2.1 3.1.0 3.1.0 Hue 3.11.0 3.11.0 3.11.0 3.11.0 3.11.0 3.11.0 4.7.0 Impala - - - - - 3.2.0 3.4.0 Kafka 0.10.0.0 0.10.0.0 0.10.2.0 1.1.0 1.1.0 1.1.0 2.11-2.4.0 KafkaManager - - - - 1.3.3.1 - - KrbServer 1.10.7 1.10.7 1.10.7 1.15.2 1.10.7 1.15.2 1.17 Kudu - - - - - 1.9.0 1.12.1 LdapServer 1.0.0 1.0.0 1.0.0 1.0.0 1.0.0 1.0.0 2.7.0 Loader 2.0.0 2.0.0 2.0.0 2.0.0 2.0.0 2.0.0 1.99.3 MapReduce 2.7.2 2.7.2 2.8.3 3.1.1 2.8.3 3.1.1 3.1.1 Oozie - - - - - - 5.1.0 Opentsdb - - - - 2.3.0 - - Presto - - - 308 0.215 308 333 Phoenix - - - - - - 5.0.0 Ranger - - - - - - 2.0.0 Spark 2.1.0 2.1.0 2.2.1 2.3.2 2.2.1 2.3.2 - Spark2x - - - - - - 2.4.5 Storm 1.0.2 1.0.2 1.0.2 1.2.1 1.2.1 1.2.1 1.2.1 Tez - - - 0.9.1 - 0.9.1 0.9.2 YARN 2.7.2 2.7.2 2.8.3 3.1.1 2.8.3 3.1.1 3.1.1 ZooKeeper 3.5.1 3.5.1 3.5.1 3.5.1 3.5.1 3.5.1 3.5.6 MRS Manager 1.5.1 1.6.3 1.7.2 2.0.5 1.8.10 2.1.0 - FusionInsight Manager - - - - - - 8.0.2.1
  • 组件及版本号信息 MRS各集群版本配套的组件及版本号信息如表1所示。 Hadoop组件包含HDFS、Yarn、Mapreduce服务,DBService、KrbServer及LdapServer等集群内部使用的组件,在创建集群时的组件列表中不呈现。 MRS组件的版本号通常与组件开源版本号保持一致。 MRS集群内各组件不支持单独升级,请根据实际需要选择对应版本的集群。 LTS(Long Term Support)版本集群与普通版本集群区别可参考MRS集群版本说明。 部分集群版本为受限白名单方式开放,如果无法直接购买需联系技术支持申请白名单开通。 表1 MRS组件版本信息 MRS支持的组件 MRS 1.9.x MRS 3.1.0 MRS 3.1.2-LTS.x MRS 3.1.5 MRS 3.2.0-LTS.x MRS 3.3.0-LTS.x MRS 3.3.1-LTS.x MRS 3.5.0-LTS.x Alluxio 2.0.1 - - - - - - - ClickHouse - 21.3.4.25 21.3.4.25 21.3.4.25 22.3.2.2 23.3.2.37 23.3.2.37 23.3.2.37 Doris - - - - - 1.2.3 2.0.5 2.0.13 DBService 1.0.0 2.7.0 2.7.0 2.7.0 2.7.0 2.7.0 2.7.0 2.7.0 Flink 1.7.0 1.12.0 1.12.2 1.12.2 1.15.0 1.15.0 1.17.1 1.17.1 Flume 1.6.0 1.9.0 1.9.0 1.9.0 1.9.0 1.11.0 1.11.0 1.11.0 Guardian - - - 0.1.0 - 0.1.0 0.1.0 0.1.0 HBase 1.3.1 2.2.3 2.2.3 2.2.3 2.2.3 2.4.14 2.4.14 2.4.14 HDFS 2.8.3 3.1.1 3.1.1 3.1.1 3.3.1 3.3.1 3.3.1 3.3.1 HetuEngine - - 1.2.0 - 1.2.0 2.0.0 2.0.0 2.1.0 Hive 2.3.3 3.1.0 3.1.0 3.1.0 3.1.0 3.1.0 3.1.0 3.1.0 Hudi(集成在Spark中) - 0.7.0 0.9.0 0.9.0 0.11.0 0.11.0 0.11.0 0.15.0 Hue 3.11.0 4.7.0 4.7.0 4.7.0 4.7.0 - - - Impala - 3.4.0 - 3.4.0 - - 4.3.0 4.3.0 IoTDB - - - - 0.14.0 - - - Kafka 1.1.0 2.11-2.4.0 2.11-2.4.0 2.11-2.4.0 2.11-2.4.0 2.12-2.8.1 2.12-3.6.1 2.12-3.6.1 KafkaManager 1.3.3.1 - - - - - - - KrbServer 1.15.2 1.17 1.18 1.18 1.18 1.20 1.20 1.20 Kudu - 1.12.1 - 1.12.1 - - 1.17.0 1.17.0 LdapServer 1.0.0 2.7.0 2.7.0 2.7.0 2.7.0 2.7.0 2.7.0 2.7.0 Loader 2.0.0 - 1.99.3 - 1.99.3 1.99.3 - - MapReduce 2.8.3 3.1.1 3.1.1 3.1.1 3.3.1 3.3.1 3.3.1 3.3.1 Oozie - 5.1.0 5.1.0 5.1.0 5.1.0 5.1.0 5.1.0 5.1.0 Opentsdb 2.3.0 - - - - - - - Presto 0.216 333 - 333 - - - - Phoenix(集成在HBase中) - 5.0.0 5.0.0 5.0.0 5.0.0 5.1.2 5.1.2 5.1.2 Ranger 1.0.1 2.0.0 2.0.0 2.0.0 2.0.0 2.3.0 2.3.0 2.3.0 Spark/Spark2x 2.2.2 2.4.5 3.1.1 3.1.1 3.1.1 3.3.1 3.3.1 3.3.1 Sqoop - 1.4.7 - 1.4.7 - - 1.4.7 1.4.7 Storm 1.2.1 - - - - - - - Tez 0.9.1 0.9.2 0.9.2 0.9.2 0.9.2 0.10.2 0.10.2 0.10.2 Yarn 2.8.3 3.1.1 3.1.1 3.1.1 3.3.1 3.3.1 3.3.1 3.3.1 ZooKeeper 3.5.1 3.5.6 3.6.3 3.6.3 3.6.3 3.8.1 3.8.1 3.8.1 MRS Manager 1.9.2 8.1.0 8.1.2.x 8.1.2 8.2.0.x 8.3.0.x 8.3.1.x 8.5.0.x
  • 更新内容 服务模块 主要变更点 CarbonData 升级到2.2.0版本。 ClickHouse 支持通过FusionInsight Manager备份恢复元数据及业务数据。 Flink 升级到1.12.2版本。 FlinkServer支持上传、管理UDF。 Guardian 新增组件,支持存算分离场景下集群外客户端委托功能。 Hadoop 普通集群访问HDFS Web UI需要进行CAS认证。 Hudi 升级到0.9.0版本。 Impala 支持在MRS Manager页面上进行Impala SQL作业管理。 Spark2x 升级到3.1.1版本。 ZooKeeper 升级到3.6.3版本。 管理控制台 支持补丁在线推送及更新。 支持包周期集群中的部分节点退订。 作业提交API新增支持FlinkSQL作业类型。 支持指定资源池的弹性伸缩能力。 Master主机规格升级功能支持多Master节点集群。 Bootstrap脚本支持以root用户身份执行。 集群主机系统盘支持最小100GB容量,数据盘支持最小200GB容量。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全