华为云用户手册

  • 迁移原理 Rump使用SCAN来获取keys,用DUMP/RESTORE来get/set值。 SCAN是一个时间复杂度O(1) 的命令,可以快速获得所有的key。DUMP/RESTORE使读/写值独立于关键工作。 以下是Rump的主要特性: 通过SCAN非阻塞的获取key,避免KEYS命令造成Redis服务阻塞。 支持所有数据类型的迁移。 把SCAN和DUMP/RESTORE操作放在同一个管道中,利用pipeline提升数据迁移过程中的网络效率。 不使用任何临时文件,不占用磁盘空间。 使用带缓冲区的channels,提升源服务器的性能。 Rump工具不支持迁移到D CS 集群实例。请改用其他工具,如redis-shake或Redis-cli。 Redis实例的密码不能包含#@:等特殊字符,避免迁移命令解析出错。 建议停业务迁移。迁移过程中如果不断写入新的数据,可能会丢失少量Key。
  • 二级索引表规格 表2 二级索引表规格 实体 测试值 二级索引表数量 10 二级索引表中的组合列的列数 5 二级索引表中的列名长度(单位:字符) 120 二级索引表名长度(单位:字符) 120 表中所有二级索引表的表名+列名的累积长度*(单位:字符) 3800** * Hive允许的上限值或可用资源的上限值。 ** 二级索引表使用hive注册,并以json格式的值存储在HiveSERDEPROPERTIES中。由hive支持的SERDEPROPERTIES的最大字符数为4000个字符,无法更改。
  • CarbonData主要规格 表1 CarbonData主要规格 实体 测试值 测试环境 表数 10000 3个节点,每个executor 4个CPU核,20GB。Driver内存5GB,3个Executor。 总列数:107 String:75 Int:13 BigInt:7 Timestamp:6 Double:6 表的列数 2000 3个节点,每个executor4个CPU核,20GB。Driver内存5GB,3个Executor。 原始CSV文件大小的最大值 200GB 17个cluster节点,每个executor 150GB,25个CPU核。Driver内存10 GB,17个Executor。 每个文件夹的CSV文件数 100个文件夹,每个文件夹10个文件,每个文件大小50MB。 3个节点,每个executor4个CPU核,20GB。Driver内存5GB,3个Executor。 加载文件夹数 10000 3个节点,每个executor4个CPU核,20GB。Driver内存5GB,3个Executor。
  • 示例代码运行结果 [2018-01-25 22:40:51,841] INFO Thread 2 Polling! (com.huawei.dms.kafka.DmsKafkaProduceDemo:119) [2018-01-25 22:40:51,841] INFO Thread2 KEEP Poll records! (com.huawei.dms.kafka.DmsKafkaProduceDemo:128) [2018-01-25 22:40:52,122] INFO Everyone WakeUp and Work! (com.huawei.dms.kafka.DmsKafkaProduceDemo:69) [2018-01-25 22:40:52,169] INFO Thread2 recievedrecordshello, dms kafka. (com.huawei.dms.kafka.DmsKafkaProduceDemo:32) [2018-01-25 22:40:52,169] INFO Thread2 recievedrecordshello, dms kafka. (com.huawei.dms.kafka.DmsKafkaProduceDemo:32) [2018-01-25 22:40:52,216] INFO Thread2 recievedrecordshello, dms kafka. (com.huawei.dms.kafka.DmsKafkaProduceDemo:32) [2018-01-25 22:40:52,325] INFO Thread 2 Polling! (com.huawei.dms.kafka.DmsKafkaProduceDemo:119) [2018-01-25 22:40:52,325] INFO Thread2 KEEP Poll records! (com.huawei.dms.kafka.DmsKafkaProduceDemo:128) [2018-01-25 22:40:54,947] INFO Thread1 Have a nice sleep! (com.huawei.dms.kafka.DmsKafkaProduceDemo:87) [2018-01-25 22:40:54,979] INFO Thread3 Have a nice sleep! (com.huawei.dms.kafka.DmsKafkaProduceDemo:87) [2018-01-25 22:41:32,347] INFO Thread2 KEEP Poll records! (com.huawei.dms.kafka.DmsKafkaProduceDemo:128) [2018-01-25 22:41:42,353] INFO Thread2 KEEP Poll records! (com.huawei.dms.kafka.DmsKafkaProduceDemo:128) [2018-01-25 22:41:47,816] INFO Everyone WakeUp and Work! (com.huawei.dms.kafka.DmsKafkaProduceDemo:69) [2018-01-25 22:41:47,847] INFO Thread2 recievedrecordshello, dms kafka. (com.huawei.dms.kafka.DmsKafkaProduceDemo:32) [2018-01-25 22:41:47,925] INFO Thread 3 Polling! (com.huawei.dms.kafka.DmsKafkaProduceDemo:119) [2018-01-25 22:41:47,925] INFO Thread1 Have a nice sleep! (com.huawei.dms.kafka.DmsKafkaProduceDemo:87) [2018-01-25 22:41:47,925] INFO Thread3 KEEP Poll records! (com.huawei.dms.kafka.DmsKafkaProduceDemo:128) [2018-01-25 22:41:47,957] INFO Thread2 Have a nice sleep! (com.huawei.dms.kafka.DmsKafkaProduceDemo:87) [2018-01-25 22:41:48,472] INFO Everyone WakeUp and Work! (com.huawei.dms.kafka.DmsKafkaProduceDemo:69) [2018-01-25 22:41:48,503] INFO Thread3 recievedrecordshello, dms kafka. (com.huawei.dms.kafka.DmsKafkaProduceDemo:32) [2018-01-25 22:41:48,518] INFO Thread1 recievedrecordshello, dms kafka. (com.huawei.dms.kafka.DmsKafkaProduceDemo:32) [2018-01-25 22:41:48,550] INFO Thread2 recievedrecordshello, dms kafka. (com.huawei.dms.kafka.DmsKafkaProduceDemo:32) [2018-01-25 22:41:48,597] INFO Thread1 recievedrecordshello, dms kafka. (com.huawei.dms.kafka.DmsKafkaProduceDemo:32) [2018-01-25 22:41:48,659] INFO Thread 2 Polling! (com.huawei.dms.kafka.DmsKafkaProduceDemo:119) [2018-01-25 22:41:48,659] INFO Thread2 KEEP Poll records! (com.huawei.dms.kafka.DmsKafkaProduceDemo:128) [2018-01-25 22:41:48,675] INFO Thread3 recievedrecordshello, dms kafka. (com.huawei.dms.kafka.DmsKafkaProduceDemo:32) [2018-01-25 22:41:48,675] INFO Everyone WakeUp and Work! (com.huawei.dms.kafka.DmsKafkaProduceDemo:69) [2018-01-25 22:41:48,706] INFO Thread 1 Polling! (com.huawei.dms.kafka.DmsKafkaProduceDemo:119) [2018-01-25 22:41:48,706] INFO Thread1 KEEP Poll records! (com.huawei.dms.kafka.DmsKafkaProduceDemo:128)
  • 云服务生命周期 在一台包年/包月云服务器生命周期的不同阶段,具体如图1所示。 图1 云服务器生命周期 云服务器从购买至到期前,处于正常运行阶段,资源状态为“运行中”。 到期后,资源状态变为“已过期”。 到期未续费时,云服务器首先会进入宽限期,宽限期到期后仍未续费,资源状态变为“已冻结”。 超过宽限期仍未续费将进入保留期,如果保留期内仍未续费,资源将被自动删除。 华为云根据客户等级定义了不同客户的宽限期和保留期时长。
  • 免费试用 GaussDB (DWS) ,到期后为什么会被扣费? GaussDB(DWS)活动页面有明确说明,活动到期后不会自动释放集群,继续扣费是正常行为。 为了避免继续产生扣费,在试用期结束时,如果您确认不再使用GaussDB(DWS)集群,请登录GaussDB(DWS)管理控制台进入“集群管理”页面删除集群。如果集群绑定了弹性IP,在删除时请勾选“释放与集群绑定的弹性IP”。如果不释放弹性IP,弹性IP将仍然按照虚拟私有云(VPC)服务的弹性公网IP计费规则进行计费。 父主题: 计费FAQ
  • 场景示例:核对资源用量是否与实际相符 假设用户在2023/06/19 14:00:00创建了一个 数据仓库 服务集群(dwsx2.xlarge.m7 | 12 vCPUs | 96 GB 内存 | 150 GB 热数据存储),并在2023/06/19 16:57:21时刻将其删除。 GaussDB(DWS)流水账单 按需计费GaussDB(DWS)按秒计费,每一个小时整点结算一次费用,您可以在流水账单中核对每一个计费周期的信息是否和实际相符,具体如下表所示。 表1 节点费用明细账单 产品类型 数据仓库服务 DWS 产品 数据仓库服务集群 计费模式 按需 消费时间 2023/06/19 14:00:00 ~ 2023/06/19 16:57:21时段计费系统将生成3笔流水账单,对应每一个计费周期,分别如下: 2023/06/19 14:00:00 ~2023/06/19 15:00:00 2023/06/19 15:00:00 ~ 2023/06/19 16:00:00 2023/06/19 16:00:00 ~ 2023/06/19 16:57:21 官网价 官网价=使用量*单价*容量 本例中,在第一个计费周期内热数据容量的使用量为3054秒,单价可在GaussDB(DWS)价格详情中查询,以1.8837元/节点为例,节点数量为3,那么官网价=3*1.8837=5.6511。同理,您可以计算剩余计费周期内资源的官网价。 优惠金额 用户使用云服务享受折扣优惠如商务折扣、伙伴授予折扣以及促销优惠等减免的金额。基于官网价的优惠金额。 抹零金额 华为云产品 定价精度为小数点后8位(单位:元),因此在计费过程中会产生小数点后8位的资源使用费用。而在实际扣费时,仅扣除到小数点后2位,小数点后第3位到第8位部分金额会被舍弃,这种舍弃部分的金额称作抹零金额。 以第一个计费周期为例,抹零金额为:0.0011 元 应付金额 应付金额=官网价-优惠金额-抹零金额 以第一个计费周期为例,假设优惠金额为0,那么应付金额=5.611 - 0 - 0.0011 =5.65 元 表2 存储费用明细账单 产品类型 数据仓库服务 DWS 产品 数据仓库服务集群 计费模式 按需 资源名称/ID DWS的名称和ID 例如:dws-272f,4cdeb1cd-7071-4890-9ce4-e6c2299e960e 规格 DWS的类型和容量 本例为通用型SSD,100GB 使用量类型 按需计费DWS的使用量类型为“热数据存储容量”。 单价 按需计费模式为简单 定价 (使用量*单价)时提供单价信息,其他的定价(如EIP公网带宽的阶梯定价)等不提供单价。 按需计费DWS属于简单定价,您可以在GaussDB(DWS)价格详情中查询单价。 单价单位 在GaussDB(DWS)价格详情中查询到的单价单位:0.0035元/GB/小时 使用量 按产品单价单位显示使用量,DWS的单价单位为元/GB/小时,因此使用量以小时为单位。本例中,2023/04/08 10:09:06 ~ 2023/04/08 12:09:06时段总计使用量为2小时。 使用量单位 小时 官网价 官网价=使用量*单价*容量 本例中,使用量为2小时,单价可在GaussDB(DWS)价格详情中查询,以0.0035元/GB/小时为例,容量为100GB,那么官网价=3 * 0.0035 * 100*2(副本) = 2.1 元。 优惠金额 用户使用云服务享受折扣优惠如商务折扣、伙伴授予折扣以及促销优惠等减免的金额。基于官网价的优惠金额。 应付金额 用户使用云服务享受折扣优惠后需要支付的费用金额。
  • 成本分配 成本管理的基础是树立成本责任制,让各部门、各业务团队、各责任人参与进来,为各自消耗云服务产生的成本负责。企业可以通过成本分配的方式,将云上成本分组,归集到特定的团队或项目业务中,让各责任组织及时了解各自的成本情况。 华为云成本中心支持通过多种不同的方式对成本进行归集和重新分配,您可以根据需要选择合适的分配工具。 通过关联账号进行成本分配 企业主客户可以使用关联账号对子客户的成本进行归集,从而对子账号进行财务管理。详细介绍请参见通过关联账号维度查看成本分配。 通过企业项目进行成本分配 在进行成本分配之前,建议开通企业项目并做好企业项目的规划,可以根据企业的组织架构或者业务项目来划分。在购买云资源时选择指定企业项目,新购云资源将按此企业项目进行成本分配。详细介绍请参见通过企业项目维度查看成本分配。 图2 为云服务器选择企业项目 通过成本标签进行成本分配 标签是华为云为了标识云资源,按各种维度(例如用途、所有者或环境)对云资源进行分类的标记。推荐企业使用预定义标签进行成本归集,具体流程如下: 图3 为GaussDB(DWS)添加标签 详细介绍请参见通过成本标签维度查看成本分配。 使用成本单元进行成本分配 企业可以使用成本中心的“成本单元”来拆分公共成本。公共成本是指多个部门共享的计算、网络、存储或资源包产生的云成本,或无法直接通过企业项目、成本标签分配的云成本。这些成本不能直接归属于单一所有者,因此不能直接归属到某一类别。使用拆分规则,可以在各团队或业务部门之间公平地分配这些成本。详细介绍请参见使用成本单元查看成本分配。
  • 成本优化 成本控制 企业可以在成本中心的“预算管理”页面创建精细粒度的预算来管理成本和使用量,在实际或预测超过预算阈值时,自动发送通知给指定消息接收人。企业还可以创建预算报告,定期将指定预算进展通知给指定消息接收人。 例如企业需要创建一个DWS的按需成本预算,每月预算金额为20000元,当预测金额高于预算金额的80%时发送预算告警。那么,创建的预算如下: 图4 预算基本信息 图5 设置成本范围 图6 设置提醒 详细介绍请参见使用预测和预算来跟踪成本和使用量。 资源优化 成本中心可以通过监控云服务器的历史消费情况和CPU使用率,为客户提供云服务器资源的空闲识别和优化建议,寻找节约成本的机会。您还可以根据成本分析阶段的分析结果识别成本偏高的资源,通过 云监控服务 监控资源的使用情况,确定成本偏高的原因,然后采取针对性的优化措施。 监控资源利用率,评估当前配置是否过高。例如:CPU、内存、云硬盘、带宽等资源的利用率。 计费模式优化 不同类型的业务对资源使用周期有不同的要求,为每一类业务确定合适的计费模式,灵活组合以达到最优效果。 针对长期稳定的成熟业务,使用包年/包月计费模式。 针对不能中断的短期、突增或不可预测的业务,使用按需计费模式。 实现自动化运维 华为云也提供了丰富的运维类产品,帮助您提升运维效率,降低运维的人力成本。例如: 集群扩容:对已有的集群添加节点,存储大小和集群已有节点一致。适合CPU和存储都存在瓶颈的场景。 集群缩容:对已有的集群进行节点删除。适合计算和存储都有冗余的场景。 调整大小:对已有的集群进行规格升降配或者迁移到其它规格。规格升降配适合CPU存在瓶颈或者冗余的场景,迁移适合对集群整体进行重新规划。 磁盘扩容:对已有的集群磁盘进行扩容。适合于集群存储空间不足的场景。
  • 如何免费试用数据仓库服务? 免费试用活动仅限新用户可以参加。如果您的账号从未创建过GaussDB(DWS)集群,且已完成实名认证,就有资格免费试用GaussDB(DWS)服务1个月。 您可以登录GaussDB(DWS) 管理控制台,单击“立即申请试用”开通免费试用套餐。不同区域之间的免费试用套餐不互通,请根据您的实际需求慎重选择。 当您开通免费试用套餐后,在免费时间段内,您可以直接登录GaussDB(DWS) 控制台创建相应区域、节点规格和节点数量的集群,该规格集群会自动享受免费试用活动。如果您选择使用其他节点类型,将按标准的按需费率支付费用,计费详情请参见GaussDB(DWS)价格详情。 当1个月免费试用结束时,您可以删除集群,从而避免产生任何费用。或者您也可以继续保留集群,将按标准的按需费率支付费用。 父主题: 计费FAQ
  • 包年/包月计费模式 登录GaussDB(DWS)管理控制台。 单击“集群管理”。默认显示用户所有的集群列表。 在集群列表中,在指定集群所在行的“操作”列,选择“续费”。 跳转至CBC续费页面,确定无误后,支付订单。 表1 续费参数说明 参数 参数说明 续费时长 选择续费时长。 统一到期日 用户可根据自身需求选择是否勾选“统一到期日设置为每月1号”,默认为每月最后一天到期。 说明: 将资源到期时间延长至统一到期日,可能产生额外的续费天数。 返回集群管理页面单击,刷新集群列表。
  • 快速部署 本章节主要帮助用户快速部署该解决方案。 表1 参数填写说明(以华北-北京四部署示例) 参数名称 类型 是否必填 参数解释 默认值 vpc_name String 必填 虚拟私有云名称,该模板使用新建VPC,不允许重名。取值范围:1-54个字符,支持中文、英文字母、数字、_(下划线)、-(中划线)、.(点)。 ziniao-cross-border-e-commerce-management-system-demo security_group_name String 必填 安全组名称,该模板新建安全组。取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)。 ziniao-cross-border-e-commerce-management-system-demo ecs_name String 必填 弹性云服务器名称,不支持重名。命名方式为{ecs_name}-数字,取值范围:1-60个字符,支持中文、英文字母、数字、_(下划线)、-(中划线)、.(点)。 ziniao-cross-border-e-commerce-management-system-demo ecs_count String 必填 弹性云服务器数量,取值范围:大于等于1,上限由用户配额决定。具体请登录华为云官网我的配额查看。 1 ecs_flavor String 必填 弹性云服务器规格,请使用2GiB及以上内存,具体请参考官网弹性云服务器规格清单。 c6.large.2 ecs_password String 必填 弹性云服务器初始化密码,创建完成后请参考3.3开始使用步骤1重置密码。取值范围:长度为8-26位,密码至少包含大写字母、小写字母、数字和特殊字符($!@%-_=+[]:./^,{}?)中的三种,密码不能包含用户名或用户名的逆序。管理员账户为Administrator。 空 bandwidth_size Number 必填 带宽大小,该模板计费方式为按带宽计费。取值范围:1-2,000Mbit/s。 5Mbit/s charging_mode String 必填 计费模式,默认自动扣费,取值为prePaid(包年包月)或postPaid(按需计费)。 postPaid charge_period_unit String 必填 订购周期类型,仅当charging_mode为prePaid(包年/包月)生效。取值范围:month(月),year(年)。 month charge_period Number 必填 订购周期,仅当charging_mode为prePaid(包年/包月)生效。取值范围:charging_unit=month(周期类型为月)时,取值为1-9;charging_unit=year(周期类型为年)时,取值为1-3。 1 登录华为云解决方案实践,选择“搭建紫鸟跨境电商管理系统”并单击,跳转至该解决方案一键部署界面,数据中心下拉菜单可以选择需要部署的区域。 图1 解决方案实施库 单击“一键部署”,跳转至该解决方案创建资源栈部署界面。 图2 创建资源栈 单击“下一步”,参考表1完成自定义参数填写。 图3 参数配置 在资源设置界面中,“权限委托”下拉框中选择“rf_admin_trust”委托,单击“下一步”。 图4 资源栈设置 在配置确认界面中,单击“创建执行计划”。 图5 创建执行计划 在弹出的创建执行计划框中,自定义填写执行计划名称,单击“确定”。 图6 创建执行计划 单击“部署”,弹出执行计划提示信息,单击“执行”确认执行。 图7 执行计划确认 (可选)如果计费模式选择“包年包月”,在余额不充足的情况下(所需总费用请参考表1)请及时登录费用中心,手动完成待支付订单的费用支付。 等待解决方案自动部署。部署成功后,单击“事件”,回显结果如下: 图8 资源创建成功 刷新页面,在“输出”中查看弹性云服务器连接说明。 图9 输出 父主题: 实施步骤
  • 资源和成本规划 该解决方案主要部署如下资源,不同产品的花费仅供参考,具体请参考华为云官网价格,实际以收费账单为准: 表1 资源和成本规划(包年包月) 华为云服务/紫鸟 配置示例 每月预估花费 弹性云服务器 ECS 区域:华北-北京四 计费模式:包年包月 规格:X86计算 | ECS | c6.large.2 | 2vCPUs | 4GiB 镜像:紫鸟跨境电商管理系统-Windows Server 2019标准版 系统盘:高IO | 100GB 购买量:1 243.50 元 弹性公网IP EIP 区域:华北-北京四 计费模式:包年包月 线路:动态BGP 公网带宽:按带宽计费 带宽大小:5Mbit/s 购买量:1 115 元 店铺管理IP - 一个店铺对应一个IP,价格在68-158元/月不等,具体请咨询紫鸟浏览器官方客服。 合计 - 358.5元 + 店铺管理IP使用费
  • 应用场景 该解决方案可以帮助您在华为云弹性云服务器上快速搭建紫鸟跨境电商店铺管理环境。紫鸟纯净浏览器是一款提供丰富的跨境电商运营、管理工具及采用多重 数据加密 +独立容器技术的Web浏览器,主要为跨境电商卖家提供店铺管理环境以及IP隔离。通过紫鸟客户端建立多个环境(电脑配置环境)购买多个IP,绑定多个店铺(一个店铺对应一个IP),从而实现跨境电商店铺管理。适用于管理eBay、速卖通、沃尔玛、wish、shopee、lazada等电商平台店铺。
  • 获取样例工程 通过开源镜像站获取样例工程。 下载样例工程的Maven工程源码和配置文件,并在本地配置好相关开发工具,可参考通过开源镜像站获取样例工程。 根据集群版本选择对应的分支,下载并获取 MRS 相关样例工程。 例如本章节场景对应示例为“hdfs-example-security”样例,获取地址:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.2.0.1/src/hdfs-example-security。 本地使用IDEA工具导入样例工程,等待Maven工程下载相关依赖包,具体操作可参考配置并导入样例工程。 图1 HDFS样例工程示例 本地配置好Maven及SDK相关参数后,样例工程会自动加载相关依赖包。 将准备应用开发配置文件中获取的集群配置文件及用户认证文件放置在样例工程的“conf”目录下。 在HDFS样例工程代码中,不同的样例工程,使用的认证代码不同,包括基本安全认证和带ZooKeeper认证。 本示例中,不需要访问HBase或ZooKeeper,所以使用基本的安全认证代码即可。 在“com.huawei.bigdata.hdfs.examples”包的“HdfsExample”类中修改“PRNCIPAL_NAME”为实际用户名,例如“developuser”。 private static final String PATH_TO_HDFS_SITE_XML = System.getProperty("user.dir") + File.separator + "conf" + File.separator + "hdfs-site.xml"; private static final String PATH_TO_CORE_SITE_XML = System.getProperty("user.dir") + File.separator + "conf" + File.separator + "core-site.xml"; private static final String PRNCIPAL_NAME = "developuser"; private static final String PATH_TO_KEYTAB = System.getProperty("user.dir") + File.separator + "conf" + File.separator + "user.keytab"; private static final String PATH_TO_KRB5_CONF = System.getProperty("user.dir") + File.separator + "conf" + File.separator + "krb5.conf"; ... 本样例工程中,基于业务场景的开发思路如下,各功能代码片段详情说明可参考HDFS样例代码说明。 以“/user/hdfs-examples/test.txt”文件的读写删除等操作为例,说明HDFS文件的基本操作流程: 通过集群安全认证。 创建FileSystem对象:fSystem。 调用fSystem的mkdir接口创建目录。 调用fSystem的create接口创建FSDataOutputStream对象:out,使用out的write方法写入数据。 调用fSystem的append接口创建FSDataOutputStream对象:out,使用out的write方法追加写入数据。 调用fSystem的open接口创建FSDataInputStream对象:in,使用in的read方法读取文件。 调用fSystem中的delete接口删除文件。 调用fSystem中的delete接口删除文件夹。
  • 创建MRS集群 购买一个包含有Kafka组件的MRS集群,详情请参见购买自定义集群。 本文以购买的MRS 3.1.0版本的集群为例,组件包含Hadoop、Kafka组件,集群未开启Kerberos认证。 集群购买成功后,在MRS集群的任一节点内,安装集群客户端,具体操作可参考安装并使用集群客户端。 例如客户端安装在主管理节点中,安装目录为“/opt/client”。 客户端安装完成后,在客户端内创建“lib”目录,用于放置相关jar包。 将安装客户端过程中解压的目录中Kafka相关jar包拷贝到“lib”目录。 例如客户端软件包的下载路径为主管理节点的“/tmp/ FusionInsight -Client”目录,执行以下命令: mkdir /opt/client/lib cd /tmp/FusionInsight-Client/FusionInsight_Cluster_1_Services_ClientConfig scp Kafka/install_files/kafka/libs/* /opt/client/lib
  • 上传jar包及准备源数据 将编译后的jar包上传到客户端节点,例如上传到“/opt/client/sparkdemo”目录下。 如果本地网络无法直接连接客户端节点上传文件,可先将jar文件或者源数据上传至OBS文件系统中,然后通过MRS管理控制台集群内的“文件管理”页面导入HDFS中,再通过HDFS客户端使用hdfs dfs -get命令下载到客户端节点本地。 将用于认证的用户keytab文件也上传到代码中指定位置,例如上传到“/opt/client”目录下。 使用root用户登录安装了集群客户端的节点。 cd /opt/client source bigdata_env kinit sparkuser 创建Hive表并写入初始数据。 beeline 在Hive Beeline命令行中执行以下命令创建表并插入数据。 create table person ( name STRING, account INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ESCAPED BY '\\' STORED AS TEXTFILE; insert into table person(name,account) values("1","100"); select * from person; +--------------+-----------------+ | person.name | person.account | +--------------+-----------------+ | 1 | 100 | +--------------+-----------------+ 创建HBase表并写入初始数据。 退出Hive Beeline命令行,执行spark-beeline,然后执行以下命令创建HBase表。 create table table2 ( key string, cid string ) using org.apache.spark.sql.hbase.HBaseSource options( hbaseTableName "table2", keyCols "key", colsMapping "cid=cf.cid" ); 退出Spark Beeline命令行,执行hbase shell命令,进入HBase Shell命令行,执行以下命令插入数据。 put 'table2', '1', 'cf:cid', '1000' scan 'table2' ROW COLUMN+CELL 1 column=cf:cid, timestamp=2023-06-12T21:12:50.711, value=1000 1 row(s)
  • 获取样例工程 通过开源镜像站获取样例工程。 下载样例工程的Maven工程源码和配置文件,并在本地配置好相关开发工具,可参考通过开源镜像站获取样例工程。 根据集群版本选择对应的分支,下载并获取MRS相关样例工程。 例如本章节场景对应示例为“hive-jdbc-example”样例,获取地址:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.1.5/src/hive-examples/hive-jdbc-example。 本地使用IDEA工具导入样例工程,等待Maven工程下载相关依赖包,具体操作可参考配置并导入样例工程。 图1 Hive样例工程示例 本地配置好Maven及SDK相关参数后,样例工程会自动加载相关依赖包。 将准备应用开发配置文件中获取的集群配置文件及用户认证文件放置在样例工程的“resources”目录下。 如需连接开启了Kerberos认证的MRS集群,在Hive样例工程代码中,需配置相关认证信息。 在“com.huawei.bigdata.hive.examples”包的“JDBCExample”类中修改“USER_NAME”为实际用户名,例如“developuser”。 KRB5_FILE = userdir + "krb5.conf"; System.setProperty("java.security.krb5.conf", KRB5_FILE); USER_NAME = "developuser"; if ("KERBEROS".equalsIgnoreCase(auth)) { USER_KEYTAB_FILE = "src/main/resources/user.keytab"; ZOOKEEPER_DEFAULT_SERVER_PRINCIPAL = "zookeeper/" + getUserRealm(); System.setProperty(ZOOKEEPER_SERVER_PRINCIPAL_KEY, ZOOKEEPER_DEFAULT_SERVER_PRINCIPAL); } ... 本样例工程中,基于业务场景的开发思路如下,各功能代码片段详情说明可参考JDBC访问Hive样例程序: 数据准备。 创建表,雇员信息表“employees_info”。 加载雇员信息数据到雇员信息表“employees_info”中。 数据分析。 统计表employees_info中有多少条记录。 删除表。
  • 编译并运行程序 编译JDBC样例程序: 在IDEA界面左下方单击“Terminal”进入终端,执行命令mvn clean package进行编译。 当输出“BUILD SUC CES S”,表示编译成功,如下图所示。编译成功后将会在样例工程的target下生成含有“-with-dependencies”字段的jar包。 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 03:30 min [INFO] Finished at: 2023-05-17T20:22:44+08:00 [INFO] ------------------------------------------------------------------------ 在本地创建一个目录作为运行目录,如“D:\jdbc_example”,将生成的包名中含有“-with-dependencies”字段的jar包放进该路径下,并在该目录下创建子目录“src/main/resources”。将样例工程“resources”目录下的所有文件拷贝到该目录下。 在Windows CMD环境下执行: cd /d d:\jdbc_example java -jar hive-jdbc-example-XXX-with-dependencies.jar 样例运行成功后,运行信息如下,表示相关Hive表操作成功执行。 ... 2023-05-17 20:25:09,421 INFO HiveConnection - Login timeout is 0 2023-05-17 20:25:09,656 INFO HiveConnection - user login success. 2023-05-17 20:25:09,685 INFO HiveConnection - Will try to open client transport with JDBC Uri: jdbc:hive2://192.168.64.216:21066/;principal=hive/hadoop.hadoop.com@HADOOP.COM;sasl.qop=auth-conf;serviceDiscoveryMode=zooKeeper;auth=KERBEROS;zooKeeperNamespace=hiveserver2;user.principal=developuser;user.keytab=src/main/resources/user.keytab 2023-05-17 20:25:30,294 INFO JDBCExample - Create table success! 2023-05-17 20:26:34,032 INFO JDBCExample - _c0 2023-05-17 20:26:34,266 INFO JDBCExample - 0 2023-05-17 20:26:35,199 INFO JDBCExample - Delete table success! ...
  • 操作步骤 进入购买MRS集群页面。 在购买集群页面,选择“自定义购买”页签。 创建集群时需要注意配额提醒。当资源配额不足时,建议按照界面提示申请足够的资源,再创建集群。 配置集群软件信息。 区域:默认即可。 计费模式:默认即可。 购买时长:按需即可。 集群名称:可以设置为系统默认名称,但为了区分和记忆,建议带上项目拼音缩写或者日期等。例如:“mrs_20180321”。 集群类型:选择“分析集群”即可。 版本类型:提供普通版和LTS版两种版本类型,默认版本类型为普通版。 集群版本:默认最新版本即可。 组件选择:分析集群勾选Spark2x、HBase和Hive等组件。流式集群勾选Kafka和Storm等组件。混合集群可同时勾选分析集群流式集群的组件。 针对MRS 3.x之前版本,分析集群勾选Spark、HBase和Hive等组件。 元数据:默认即可。MRS 3.x版本支持。 组件端口:当前MRS集群内各组件默认通讯端口值的策略。 单击“下一步”。 可用区:默认即可。 当您为IES购买MRS时,默认可用区为“边缘可用区”。 企业项目:选择“default”即可。 虚拟私有云:默认即可。如果没有虚拟私有云,请单击“查看虚拟私有云”进入虚拟私有云,创建一个新的虚拟私有云。 子网:默认即可。 安全组:默认即可。 弹性公网IP:默认即可。 CPU架构:默认即可。 常用模板:根据业务需求,选择相应模板。 集群节点: 节点数:需要购买的节点数量,3.x版本默认为3或根据业务情况选择合适的规格。 实例规格:Master和Core节点保持默认或根据业务情况选择合适的规格。 系统盘:存储类型选择“超高IO”,存储空间默认即可。 数据盘:存储类型选择“超高IO”,存储空间默认即可,数据盘数量默认即可。 拓扑调整:默认即可。 单击“下一步”进入高级配置页签,配置参数,其他参数保持默认。 Kerberos认证: Kerberos认证:关闭Kerberos认证。 用户名:Manager管理员用户,目前默认为admin用户。 密码:Manager管理员用户的密码。 确认密码:再次输入密码。 登录方式:选择登录ECS节点的登录方式。 密码:设置登录ECS节点的登录密码。 密钥对:从下拉框中选择密钥对,如果已获取私钥文件,请勾选“我确认已获取该密钥对中的私钥文件SSHkey-xxx,否则无法登录弹性云服务器”。如果没有创建密钥对,请单击“查看密钥对”创建或导入密钥,然后再获取私钥文件。 主机名前缀:用作集群中ECS机器或BMS机器主机名的前缀。 只能包含大写字母、小写字母、数字和中划线,中划线不能在开头或末尾,最大支持20个字符。 集群创建时会为节点注册DNS 域名 ,集群创建完成后完整的主机名和节点域名为:[prefix]-hostname.mrs-{XXXX}.com。XXXX为根据UUID生成的四位字符串。 高级配置:如果需要设置,请勾选“现在配置”进行配置。 单击“下一步”进入确认配置页签。 配置:确认软件配置、硬件配置及高级配置信息。 通信安全授权:勾选“通信安全授权”。 单击“立即购买”。 当集群开启Kerberos认证时,需要确认是否需要开启Kerberos认证,若确认开启请单击“继续”,若无需开启Kerberos认证请单击“返回”关闭Kerberos认证后再创建集群。购买集群后,不支持修改。 单击“返回集群列表”,可以查看到集群创建的状态。 集群创建需要时间,所创集群的初始状态为“启动中”,创建成功后状态更新为“运行中”,请您耐心等待。
  • 监控指标参考 FusionInsight Manager转告警监控指标可分为节点信息指标与集群服务指标。表2表示节点中可配置阈值的指标、表3表示组件可配置阈值的指标。 下表中的“默认阈值”参数值以未开启分级告警开关为例,具体以实际界面显示为准。 表2 节点信息监控指标转告警列表(未开启分级告警开关) 监控指标组名称 监控指标名称 告警ID 告警名称 告警对系统的影响 默认阈值 CPU 主机CPU使用率 12016 CPU使用率超过阈值 业务进程响应缓慢或不可用。 90.0% 磁盘 磁盘使用率 12017 磁盘容量不足 业务进程不可用。 90.0% 磁盘inode使用率 12051 磁盘Inode使用率超过阈值 文件系统无法正常写入。 80.0% 内存 主机内存使用率 12018 内存使用率超过阈值 业务进程响应缓慢或不可用。 90.0% 主机状态 主机文件句柄使用率 12053 主机文件句柄使用率超过阈值 系统应用无法打开文件、网络等IO操作,程序异常。 80.0% 主机PID使用率 12027 主机PID使用率超过阈值 无法分配PID给新的业务进程,业务进程不可用。 90% 网络状态 TCP临时端口使用率 12052 TCP临时端口使用率超过阈值 主机上业务无法发起对外建立连接,业务中断。 80.0% 网络读信息 读包错误率 12047 网络读包错误率超过阈值 通信闪断,业务超时。 0.5% 读包丢包率 12045 网络读包丢包率超过阈值 业务性能下降或者个别业务出现超时问题。 0.5% 读吞吐率 12049 网络读吞吐率超过阈值 业务系统运行不正常或不可用。 80% 网络写信息 写包错误率 12048 网络写包错误率超过阈值 通信闪断,业务超时。 0.5% 写包丢包率 12046 网络写包丢包率超过阈值 业务性能下降或者个别业务出现超时问题。 0.5% 写吞吐率 12050 网络写吞吐率超过阈值 业务系统运行不正常或不可用。 80% 进程 D状态和Z状态进程总数 12028 主机D状态和Z状态进程数超过阈值 占用系统资源,业务进程响应变慢。 0 omm进程使用率 12061 进程使用率超过阈值 无法切换到omm用户。无法创建新的omm线程。 90 表3 集群监控指标转告警列表(未开启分级告警开关) 服务 监控指标名称 告警ID 告警名称 告警对系统的影响 默认阈值 DBService 数据库连接数使用率 27005 数据库连接数使用率超过阈值 可能导致上层服务无法连接DBService的数据库,影响正常业务。 90% 数据目录磁盘空间使用率 27006 数据目录磁盘空间使用率超过阈值 业务进程不可用。 当数据目录磁盘空间使用率超过90%时,数据库进入只读模式并发送告警“数据库进入只读模式”,业务数据丢失。 80% Flume Flume堆内存使用率 24006 Flume Server堆内存使用率超过阈值 堆内存溢出可能导致服务崩溃。 95.0% Flume直接内存使用率 24007 Flume Server直接内存使用率超过阈值 直接内存溢出可能导致服务崩溃。 80.0% Flume非堆内存使用率 24008 Flume Server非堆内存使用率超过阈值 非堆内存溢出可能导致服务崩溃。 80.0% Flume垃圾回收(GC)总时间 24009 Flume Server垃圾回收(GC)时间超过阈值 导致Flume数据传输效率低下。 12000ms HBase GC中回收old区所花时长 19007 HBase GC时间超出阈值 老年代GC时间超出阈值,会影响到HBase数据的读写。 5000ms RegionServer直接内存使用率统计 19009 HBase服务进程直接内存使用率超出阈值 HBase可用的直接内存不足,可能会造成内存溢出导致服务崩溃。 90% RegionServer堆内存使用率统计 19008 HBase服务进程堆内存使用率超出阈值 HBase可用内存不足,可能会造成内存溢出导致服务崩溃。 90% HMaster直接内存使用率统计 19009 HBase服务进程直接内存使用率超出阈值 HBase可用的直接内存不足,可能会造成内存溢出导致服务崩溃。 90% HMaster堆内存使用率统计 19008 HBase服务进程堆内存使用率超出阈值 HBase可用内存不足,可能会造成内存溢出导致服务崩溃。 90% 单个RegionServer的region数目 19011 RegionServer的Region数量超出阈值 RegionServer的Region数超出阈值,会影响HBase的数据读写性能。 2000 处在RIT状态达到阈值时长的region数 19013 region处在RIT状态的时长超过阈值。 表的部分数据丢失或不可用。 1 RegionServer的handler使用 19021 RegionServer活跃handler数超过阈值 RegionServer的handler使用率超出阈值,会影响RegionServer对外提供服务的能力,如果集群的大部分RegionServer的handler使用率超过阈值,可导致HBase无法对外提供服务。 90% 容灾同步失败次数 19006 HBase容灾同步失败 无法同步集群中HBase的数据到备集群,导致主备集群数据不一致。 1 主集群等待同步的日志文件数量 19020 HBase容灾等待同步的wal文件数量超过阈值 RegionServer等待同步的wal文件数量超出阈值,会影响HBase使用的znode超出阈值,影响HBase服务状态。 128 主集群等待同步的HFile文件数量 19019 HBase容灾等待同步的HFile文件数量超过阈值 RegionServer等待同步的HFile文件数量超出阈值,会影响HBase使用的znode超出阈值,影响HBase服务状态。 128 Compaction操作队列大小 19018 HBase合并队列超出阈值 产生该告警表示HBase服务的compaction队列长度已经超过规定的阈值,如果不及时处理,可能会导致集群性能下降,影响数据读写。 100 HDFS HDFS缺失的块数量 14003 丢失的HDFS块数量超过阈值 HDFS存储数据丢失,HDFS可能会进入安全模式,无法提供写服务。丢失的块数据无法恢复。 0 需要复制副本的块总数 14028 待补齐的块数超过阈值 HDFS存储数据丢失,HDFS可能会进入安全模式,无法提供写服务。丢失的块数据无法恢复。 1000 主NameNode RPC处理平均时间 14021 NameNode RPC处理平均时间超过阈值 NameNode无法及时处理来自HDFS客户端、依赖于HDFS的上层服务、DataNode等的RPC请求,表现为访问HDFS服务的业务运行缓慢,严重时会导致HDFS服务不可用。 100ms 主NameNode RPC队列平均时间 14022 NameNode RPC队列平均时间超过阈值 NameNode无法及时处理来自HDFS客户端、依赖于HDFS的上层服务、DataNode等的RPC请求,表现为访问HDFS服务的业务运行缓慢,严重时会导致HDFS服务不可用。 200ms HDFS磁盘空间使用率 14001 HDFS磁盘空间使用率超过阈值 HDFS集群磁盘容量不足,会影响到HDFS的数据写入。 80% DataNode磁盘空间使用率 14002 DataNode磁盘空间使用率超过阈值 DataNode容量不足,会影响到HDFS的数据写入。 80% 总副本预留磁盘空间所占比率 14023 总副本预留磁盘空间所占比率超过阈值 HDFS集群磁盘容量不足,会影响到HDFS的数据写入。如果DataNode的剩余空间都已经给副本预留,则写入HDFS数据失败。 90% 故障的DataNode总数 14009 Dead DataNode数量超过阈值 故障状态的DataNode节点无法提供HDFS服务。 3 NameNode非堆内存使用百分比统计 14018 NameNode非堆内存使用率超过阈值 HDFS NameNode非堆内存使用率过高,会影响HDFS的数据读写性能。 90% NameNode直接内存使用百分比统计 14017 NameNode直接内存使用率超过阈值 NameNode可用直接内存不足,可能会造成内存溢出导致服务崩溃。 90% NameNode堆内存使用百分比统计 14007 NameNode堆内存使用率超过阈值 HDFS NameNode堆内存使用率过高,会影响HDFS的数据读写性能。 95% DataNode直接内存使用百分比统计 14016 DataNode直接内存使用率超过阈值 DataNode可用直接内存不足,可能会造成内存溢出导致服务崩溃。 90% DataNode堆内存使用百分比统计 14008 DataNode堆内存使用率超过阈值 HDFS DataNode堆内存使用率过高,会影响到HDFS的数据读写性能。 95% DataNode非堆内存使用百分比统计 14019 DataNode非堆内存使用率超过阈值 HDFS DataNode非堆内存使用率过高,会影响HDFS的数据读写性能。 90% 垃圾回收时间统计(GC)(NameNode) 14014 NameNode进程垃圾回收(GC)时间超过阈值 NameNode进程的垃圾回收时间过长,可能影响该NameNode进程正常提供服务。 12000ms 垃圾回收时间统计(GC)(DataNode) 14015 DataNode进程垃圾回收(GC)时间超过阈值 DataNode进程的垃圾回收时间过长,可能影响该DataNode进程正常提供服务。 12000ms Hive Hive执行成功的HQL百分比 16002 Hive SQL执行成功率低于阈值 系统执行业务能力过低,无法正常响应客户请求。 90.0% Background线程使用率 16003 Background线程使用率超过阈值 后台Background线程数过多,导致新提交的任务无法及时运行。 90% MetaStore的总GC时间 16007 Hive GC 时间超出阈值 GC时间超出阈值,会影响到Hive数据的读写。 12000ms HiveServer的总GC时间 16007 Hive GC 时间超出阈值 GC时间超出阈值,会影响到Hive数据的读写。 12000ms Hive已经使用的HDFS空间占可使用空间的百分比 16001 Hive数据仓库空间使用率超过阈值 系统可能无法正常写入数据,导致部分数据丢失。 85.0% MetaStore直接内存使用率统计 16006 Hive服务进程直接内存使用超出阈值 Hive直接内存使用率过高,会影响Hive任务运行的性能,甚至造成内存溢出导致Hive服务不可用。 95% MetaStore非堆内存使用率统计 16008 Hive服务进程非堆内存使用超出阈值 Hive非堆内存使用率过高,会影响Hive任务运行的性能,甚至造成内存溢出导致Hive服务不可用。 95% MetaStore堆内存使用率统计 16005 Hive服务进程堆内存使用超出阈值 Hive堆内存使用率过高,会影响Hive任务运行的性能,甚至造成内存溢出导致Hive服务不可用。 95% HiveServer直接内存使用率统计 16006 Hive服务进程直接内存使用超出阈值 Hive直接内存使用率过高,会影响Hive任务运行的性能,甚至造成内存溢出导致Hive服务不可用。 95% HiveServer非堆内存使用率统计 16008 Hive服务进程非堆内存使用超出阈值 Hive非堆内存使用率过高,会影响Hive任务运行的性能,甚至造成内存溢出导致Hive服务不可用。 95% HiveServer堆内存使用率统计 16005 Hive服务进程堆内存使用超出阈值 Hive堆内存使用率过高,会影响Hive任务运行的性能,甚至造成内存溢出导致Hive服务不可用。 95% 连接到HiveServer的session数占最大允许session数的百分比 16000 连接到HiveServer的session数占最大允许数的百分比超过阈值 发生连接数告警时,表示连接到HiveServer的session数过多,将会导致无法建立新的连接。 90.0% Kafka 未完全同步的Partition百分比 38006 Kafka未完全同步的Partition百分比超过阈值 Kafka服务未完全同步的Partition数过多,会影响服务的可靠性,一旦发生leader切换,可能会导致丢数据。 50% broker上用户连接数使用率 38011 Broker上用户连接数使用率超过设定阈值 当同一个用户连接数太多时,产生告警的用户将无法与Broker建立新的连接。 80% Broker磁盘使用率 38001 Kafka磁盘容量不足 磁盘容量不足会导致Kafka写入数据失败。 80.0% Broker磁盘IO使用率 38009 Broker磁盘IO繁忙 Partition所在的磁盘分区IO过于繁忙,产生告警的Kafka Topic上可能无法写入数据。 80% Broker每分钟的垃圾回收时间统计(GC) 38005 Broker进程垃圾回收(GC)时间超过阈值 Broker进程的垃圾回收时间过长,可能影响该Broker进程正常提供服务。 12000ms Kafka堆内存使用率 38002 Kafka堆内存使用率超过阈值 Kafka可用内存不足,可能会造成内存溢出导致服务崩溃。 95% Kafka直接内存使用率 38004 Kafka直接内存使用率超过阈值 Kafka可用直接内存不足,可能会造成内存溢出导致服务崩溃。 95% Loader Loader堆内存使用率 23004 Loader堆内存使用率超过阈值 堆内存溢出可能导致服务崩溃。 95% Loader直接内存使用率统计 23006 Loader直接内存使用率超过阈值 直接内存溢出可能导致服务崩溃。 80.0% Loader非堆内存使用率 23005 Loader非堆内存使用率超过阈值 非堆内存溢出可能导致服务崩溃。 80% Loader的总GC时间 23007 Loader进程垃圾回收(GC)时间超过阈值 导致Loader服务响应缓慢。 12000ms Mapreduce 垃圾回收时间统计(GC) 18012 JobHistoryServer进程垃圾回收(GC)时间超过阈值 JobHistoryServer进程的垃圾回收时间过长,可能影响该JobHistoryServer进程正常提供服务。 12000ms JobHistoryServer直接内存使用百分比统计 18015 JobHistoryServer直接内存使用率超过阈值 MapReduce可用直接内存不足,可能会造成内存溢出导致服务崩溃。 90% JobHistoryServer非堆内存使用百分比统计 18019 JobHistoryServer非堆内存使用率超过阈值 MapReduce JobHistoryServer非堆内存使用率过高,会影响MapReduce任务提交和运行的性能,甚至造成内存溢出导致 MapReduce服务 不可用。 90% JobHistoryServer堆内存使用百分比统计 18009 JobHistoryServer堆内存使用率超过阈值 Mapreduce JobHistoryServer堆内存使用率过高,会影响Mapreduce 服务日志归档的性能,甚至造成内存溢出导致Mapreduce服务不可用。 95% Oozie Oozie堆内存使用率 17004 Oozie堆内存使用率超过阈值 堆内存溢出可能导致服务崩溃。 95.0% Oozie直接内存使用率 17006 Oozie直接内存使用率超过阈值 直接内存溢出可能导致服务崩溃。 80.0% Oozie非堆内存使用率 17005 Oozie非堆内存使用率超过阈值 非堆内存溢出可能导致服务崩溃。 80% Oozie垃圾回收(GC)总时间 17007 Oozie垃圾回收(GC)时间超过阈值 导致Oozie提交任务响应变慢。 12000ms Spark2x JD BCS erver2x堆内存使用率统计 43010 JDBCServer2x进程堆内存使用超出阈值 JDBCServer2x进程堆内存使用率过高,会影响JDBCServer2x进程运行的性能,甚至造成内存溢出导致JDBCServer2x进程不可用。 95% JDBCServer2x直接内存使用率统计 43012 JDBCServer2x进程直接内存使用超出阈值 JDBCServer2x进程直接内存使用率过高,会影响JDBCServer2x进程运行的性能,甚至造成内存溢出导致JDBCServer2x进程不可用。 95% JDBCServer2x非堆内存使用率统计 43011 JDBCServer2x进程非堆内存使用超出阈值 JDBCServer2x进程非堆内存使用率过高,会影响JDBCServer2x进程运行的性能,甚至造成内存溢出导致JDBCServer2x进程不可用。 95% JobHistory2x直接内存使用率统计 43008 JobHistory2x进程直接内存使用超出阈值 JobHistory2x进程直接内存使用率过高,会影响JobHistory2x进程运行的性能,甚至造成内存溢出导致JobHistory2x进程不可用。 95% JobHistory2x非堆内存使用率统计 43007 JobHistory2x进程非堆内存使用超出阈值 JobHistory2x进程非堆内存使用率过高,会影响JobHistory2x进程运行的性能,甚至造成内存溢出导致JobHistory2x进程不可用。 95% JobHistory2x堆内存使用率统计 43006 JobHistory2x进程堆内存使用超出阈值 JobHistory2x进程堆内存使用率过高,会影响JobHistory2x进程运行的性能,甚至造成内存溢出导致JobHistory2x进程不可用。 95% IndexServer2x直接内存使用率统计 43021 IndexServer2x进程直接内存使用超出阈值 IndexServer2x进程直接内存使用率过高,会影响IndexServer2x进程运行的性能,甚至造成内存溢出导致IndexServer2x进程不可用。 95% IndexServer2x堆内存使用率统计 43019 IndexServer2x进程堆内存使用超出阈值 IndexServer2x进程堆内存使用率过高,会影响IndexServer2x进程运行的性能,甚至造成内存溢出导致IndexServer2x进程不可用。 95% IndexServer2x非堆内存使用率统计 43020 IndexServer2x进程非堆内存使用超出阈值 IndexServer2x进程非堆内存使用率过高,会影响IndexServer2x进程运行的性能,甚至造成内存溢出导致IndexServer2x进程不可用。 95% JDBCServer2x的Full GC次数 43017 JDBCServer2x进程Full GC次数超出阈值 GC次数超出阈值,会影响JDBCServer2x进程运行的性能,甚至造成JDBCServer2x进程不可用。 12 JobHistory2x的Full GC次数 43018 JobHistory2x进程Full GC次数超出阈值 GC次数超出阈值,会影响JobHistory2x进程运行的性能,甚至造成JobHistory2x进程不可用。 12 IndexServer2x的Full GC次数 43023 IndexServer2x进程Full GC次数超出阈值 GC次数超出阈值,会影响IndexServer2x进程运行的性能,甚至造成IndexServer2x进程不可用。 12 JDBCServer2x的总GC时间 43013 JDBCServer2x进程GC时间超出阈值 GC时间超出阈值,会影响JDBCServer2x进程运行的性能,甚至造成JDBCServer2x进程不可用。 12000ms JobHistory2x的总GC时间 43009 JobHistory2x进程GC时间超出阈值 GC时间超出阈值,会影响JobHistory2x进程运行的性能,甚至造成JobHistory2x进程不可用。 12000ms IndexServer2x的总GC时间 43022 IndexServer2x进程GC时间超出阈值 GC时间超出阈值,会影响IndexServer2x进程运行的性能,甚至造成IndexServer2x进程不可用。 12000ms Storm Supervisor数 26052 Storm服务可用Supervisor数量小于阈值 集群已经存在的任务无法运行;集群可接收新的Storm任务,但是无法运行。 1 已用Slot比率 26053 Storm Slot使用率超过阈值 用户无法执行新的Storm任务。 80.0% Nimbus堆内存使用率 26054 Nimbus堆内存使用率超过阈值 Storm Nimbus堆内存使用率过高时可能造成频繁GC,甚至造成内存溢出,进而影响Storm任务提交。 80% Yarn NodeManager直接内存使用百分比统计 18014 NodeManager直接内存使用率超过阈值 NodeManager可用直接内存不足,可能会造成内存溢出导致服务崩溃。 90% NodeManager堆内存使用百分比统计 18018 NodeManager堆内存使用率超过阈值 NodeManager堆内存使用率过高,会影响Yarn任务提交和运行的性能,甚至可能会造成内存溢出导致Yarn服务崩溃。 95% NodeManager非堆内存使用百分比统计 18017 NodeManager非堆内存使用率超过阈值 Yarn NodeManager非堆内存使用率过高,会影响Yarn任务提交和运行的性能,甚至造成内存溢出导致Yarn服务不可用。 90% ResourceManager直接内存使用百分比统计 18013 ResourceManager直接内存使用率超过阈值 ResourceManager可用直接内存不足,可能会造成内存溢出导致服务崩溃。 90% ResourceManager堆内存使用百分比统计 18008 ResourceManager堆内存使用率超过阈值 Yarn ResourceManager堆内存使用率过高,会影响Yarn任务提交和运行的性能,甚至造成内存溢出导致Yarn服务不可用。 95% ResourceManager非堆内存使用百分比统计 18016 ResourceManager非堆内存使用率超过阈值 Yarn ResourceManager非堆内存使用率过高,会影响Yarn任务提交和运行的性能,甚至造成内存溢出导致Yarn服务不可用。 90% 垃圾回收时间统计(GC) (NodeManager) 18011 NodeManager进程垃圾回收(GC)时间超过阈值 NodeManager进程的垃圾回收时间过长,可能影响该NodeManager进程正常提供服务。 12000ms 垃圾回收时间统计(GC)(ResourceManager) 18010 ResourceManager进程垃圾回收(GC)时间超过阈值 ResourceManager进程的垃圾回收时间过长,可能影响该ResourceManager进程正常提供服务。 12000ms root队列下失败的任务数 18026 Yarn上运行失败的任务数超过阈值 大量应用任务运行失败。 运行失败的任务需要重新提交。 50 root队列下被杀死的任务数 18025 Yarn被终止的任务数超过阈值 大量应用任务被强制终止。 50 挂起的内存量 18024 Yarn任务挂起内存超过阈值 应用任务结束时间变长。 新应用提交后长时间无法运行。 83886080MB 正在挂起的任务 18023 Yarn任务挂起数超过阈值 应用任务结束时间变长。 新应用提交后长时间无法运行。 60 ZooKeeper ZooKeeper连接数使用率 13001 ZooKeeper可用连接数不足 ZooKeeper可用连接数不足,当连接率超过100%时无法处理外部连接。 80% ZooKeeper堆内存使用率 13004 ZooKeeper堆内存使用率超过阈值 ZooKeeper可用内存不足,可能会造成内存溢出导致服务崩溃。 95% ZooKeeper直接内存使用率 13002 ZooKeeper直接内存使用率超过阈值 ZooKeeper可用内存不足,可能会造成内存溢出导致服务崩溃。 80% ZooKeeper每分钟的垃圾回收时间统计(GC) 13003 ZooKeeper进程垃圾回收(GC)时间超过阈值 ZooKeeper进程的垃圾回收时间过长,可能影响该ZooKeeper进程正常提供服务。 12000ms Ranger UserSync垃圾回收(GC)时间 45284 UserSync垃圾回收(GC)时间超过阈值 导致UserSync响应缓慢。 12000ms PolicySync垃圾回收(GC)时间 45292 PolicySync垃圾回收(GC)时间超过阈值 导致PolicySync响应缓慢。 12000ms RangerAdmin垃圾回收(GC)时间 45280 RangerAdmin垃圾回收(GC)时间超过阈值 导致RangerAdmin响应缓慢。 12000ms TagSync垃圾回收(GC)时间 45288 TagSync垃圾回收(GC)时间超过阈值 导致TagSync响应缓慢。 12000ms UserSync非堆内存使用率 45283 UserSync非堆内存使用率超过阈值 非堆内存溢出可能导致服务崩溃。 80.0% UserSync直接内存使用率 45282 UserSync直接内存使用率超过阈值 直接内存溢出可能导致服务崩溃。 80.0% UserSync堆内存使用率 45281 UserSync堆内存使用率超过阈值 堆内存溢出可能导致服务崩溃。 95.0% PolicySync直接内存使用率 45290 PolicySync直接内存使用率超过阈值 直接内存溢出可能导致服务崩溃。 80.0% PolicySync堆内存使用率 45289 PolicySync堆内存使用率超过阈值 堆内存溢出可能导致服务崩溃。 95.0% PolicySync非堆内存使用率 45291 PolicySync非堆内存使用率超过阈值 非堆内存溢出可能导致服务崩溃。 80.0% RangerAdmin非堆内存使用率 45279 RangerAdmin非堆内存使用率超过阈值 非堆内存溢出可能导致服务崩溃。 80.0% RangerAdmin堆内存使用率 45277 RangerAdmin堆内存使用率超过阈值 堆内存溢出可能导致服务崩溃。 95.0% RangerAdmin直接内存使用率 45278 RangerAdmin直接内存使用率超过阈值 直接内存溢出可能导致服务崩溃。 80.0% TagSync直接内存使用率 45286 TagSync直接内存使用率超过阈值 直接内存溢出可能导致服务崩溃。 80.0% TagSync非堆内存使用率 45287 TagSync非堆内存使用率超过阈值 非堆内存溢出可能导致服务崩溃。 80.0% TagSync堆内存使用率 45285 TagSync堆内存使用率超过阈值 堆内存溢出可能导致服务崩溃。 95.0% ClickHouse Clickhouse服务在ZooKeeper的数量配额使用率 45426 ClickHouse服务在ZooKeeper的数量配额使用率超过阈值 ClickHouse在ZooKeeper的数量配额超过阈值后,无法通过FusionInsight Manager对ClickHouse进行集群操作,无法使用ClickHouse服务功能。 90% Clickhouse服务在ZooKeeper的容量配额使用率 45427 ClickHouse服务在ZooKeeper的容量配额使用率超过阈值 ClickHouse在ZooKeeper的容量配额超过阈值后,无法通过FusionInsight Manager对ClickHouse进行集群操作,无法使用ClickHouse服务功能。 90% IoTDB 合并任务 (空间内合并) 的最大时延 45594 IoTDBServer空间内合并执行时长超过阈值 空间内合并任务超时,会阻塞写数据,影响写操作的性能。 300000ms 合并任务 (Flush) 的最大时延 45593 IoTDBServer Flush执行时长超过阈值 Flush任务超时,会阻塞写数据,影响写操作的性能。 300000ms 合并任务 (跨空间合并) 的最大时延 45595 IoTDBServer跨空间合并执行时长超过阈值 跨空间合并任务超时,会阻塞写数据,影响写操作的性能。 300000ms RPC (executeStatement) 的最大时延 45592 IoTDBServer RPC执行时长超过阈值 IoTDBServer进程RPC过高,会影响IoTDBServer进程运行的性能。 10000s IoTDBServer垃圾回收(GC)总时间 45587 IoTDBServer垃圾回收(GC)时间超过阈值 IoTDBServer进程的垃圾回收(GC)时间过长,可能影响该IoTDBServer进程正常提供服务。 12000ms ConfigNode垃圾回收(GC)总时间 45590 ConfigNode垃圾回收(GC)时间超过阈值 ConfigNode进程的垃圾回收(GC)时间过长,可能影响该ConfigNode进程正常提供服务。 12000ms IoTDBServer堆内存使用率 45586 IoTDBServer堆内存使用率超过阈值 IoTDBServer进程堆内存使用率过高,会影响IoTDBServer进程运行的性能,甚至造成内存溢出导致IoTDBServer进程不可用。 90% IoTDBServer直接内存使用率 45588 IoTDBServer直接内存使用率超过阈值 直接内存溢出可能导致服务崩溃。 90% ConfigNode堆内存使用率 45589 ConfigNode堆内存使用率超过阈值 ConfigNode进程堆内存使用率过高,会影响ConfigNode进程运行的性能,甚至造成内存溢出导致ConfigNode进程不可用。 90% ConfigNode直接内存使用率 45591 ConfigNode直接内存使用率超过阈值 直接内存溢出可能导致IoTDB实例不可用。 90%
  • 获取样例工程 通过开源镜像站获取样例工程。 下载样例工程的Maven工程源码和配置文件,并在本地配置好相关开发工具,可参考通过开源镜像站获取样例工程。 根据集群版本选择对应的分支,下载并获取MRS相关样例工程。 例如本章节场景对应示例为“hcatalog-example”样例,获取地址:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.1.5/src/hive-examples/hcatalog-example。 本地使用IDEA工具导入样例工程,等待Maven工程下载相关依赖包,具体操作可参考配置并导入样例工程。 图1 Hive HCatalog样例工程示例 本地配置好Maven及SDK相关参数后,样例工程会自动加载相关依赖包。
  • 编译并运行程序 编译HCatalog样例程序: 在IDEA Maven工具窗口,选择clean生命周期,执行Maven构建过程。 选择package生命周期,执行Maven构建过程。 图2 打包样例程序 当输出“BUILD SUCCESS”,表示编译成功。 编译成功后将会在样例工程的“target”目录下生成jar包“hcatalog-example-XXX.jar”。 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 03:30 min [INFO] Finished at: 2023-05-17T20:22:44+08:00 [INFO] ------------------------------------------------------------------------ 登录Hive Beeline命令行,创建用于HCatalog程序分析的源表及数据表。 source /opt/client/bigdata_env kinit hiveuser beeline create table t1(col1 int); create table t2(col1 int,col2 int); 向源数据表t1中插入测试数据: insert into table t1 select 1 union all select 1 union all select 2 union all select 2 union all select 3; select * from t1; +----------+ | t1.col1 | +----------+ | 1 | | 1 | | 2 | | 2 | | 3 | +----------+ 将导出的jar包上传至集群客户端所在的Linux节点指定路径,例如“/opt/hive_demo”。 为方便后续操作,将样例程序目录、客户端组件目录等配置为公共变量。 退出Beeline命令行,执行以下命令: export HCAT_CLIENT=/opt/hive_demo export HADOOP_HOME=/opt/client/HDFS/hadoop export HIVE_HOME=/opt/client/Hive/Beeline export HCAT_HOME=$HIVE_HOME/../HCatalog export LIB_JARS=$HCAT_HOME/lib/hive-hcatalog-core-XXX.jar,$HCAT_HOME/lib/hive-metastore-XXX.jar,$HCAT_HOME/lib/hive-standalone-metastore-XXX.jar,$HIVE_HOME/lib/hive-exec-XXX.jar,$HCAT_HOME/lib/libfb303-XXX.jar,$HCAT_HOME/lib/slf4j-api-XXX.jar,$HCAT_HOME/lib/jdo-api-XXX.jar,$HCAT_HOME/lib/antlr-runtime-XXX.jar,$HCAT_HOME/lib/datanucleus-api-jdo-XXX.jar,$HCAT_HOME/lib/datanucleus-core-XXX.jar,$HCAT_HOME/lib/datanucleus-rdbms-fi-XXX.jar,$HCAT_HOME/lib/log4j-api-XXX.jar,$HCAT_HOME/lib/log4j-core-XXX.jar,$HIVE_HOME/lib/commons-lang-XXX.jar,$HIVE_HOME/lib/hive-exec-XXX.jar export HADOOP_CLASSPATH=$HCAT_HOME/lib/hive-hcatalog-core-XXX.jar:$HCAT_HOME/lib/hive-metastore-XXX.jar:$HCAT_HOME/lib/hive-standalone-metastore-XXX.jar:$HIVE_HOME/lib/hive-exec-XXX.jar:$HCAT_HOME/lib/libfb303-XXX.jar:$HADOOP_HOME/etc/hadoop:$HCAT_HOME/conf:$HCAT_HOME/lib/slf4j-api-XXX.jar:$HCAT_HOME/lib/jdo-api-XXX.jar:$HCAT_HOME/lib/antlr-runtime-XXX.jar:$HCAT_HOME/lib/datanucleus-api-jdo-XXX.jar:$HCAT_HOME/lib/datanucleus-core-XXX.jar:$HCAT_HOME/lib/datanucleus-rdbms-fi-XXX.jar:$HCAT_HOME/lib/log4j-api-XXX.jar:$HCAT_HOME/lib/log4j-core-XXX.jar:$HIVE_HOME/lib/commons-lang-XXX.jar:$HIVE_HOME/lib/hive-exec-XXX.jar LIB_JARS和HADOOP_CLASSPATH中指定的jar包的版本号“XXX”需要根据实际环境的版本号进行修改。 使用Yarn客户端提交任务。 yarn --config $HADOOP_HOME/etc/hadoop jar $HCAT_CLIENT/hcatalog-example-XXX.jar com.huawei.bigdata.HCatalogExample -libjars $LIB_JARS t1 t2 ... 2023-05-18 20:05:56,691 INFO mapreduce.Job: The url to track the job: https://host-192-168-64-122:26001/proxy/application_1683438782910_0008/ 2023-05-18 20:05:56,692 INFO mapreduce.Job: Running job: job_1683438782910_0008 2023-05-18 20:06:07,250 INFO mapreduce.Job: Job job_1683438782910_0008 running in uber mode : false 2023-05-18 20:06:07,253 INFO mapreduce.Job: map 0% reduce 0% 2023-05-18 20:06:15,362 INFO mapreduce.Job: map 25% reduce 0% 2023-05-18 20:06:16,386 INFO mapreduce.Job: map 50% reduce 0% 2023-05-18 20:06:35,999 INFO mapreduce.Job: map 100% reduce 0% 2023-05-18 20:06:42,048 INFO mapreduce.Job: map 100% reduce 100% 2023-05-18 20:06:43,136 INFO mapreduce.Job: Job job_1683438782910_0008 completed successfully 2023-05-18 20:06:44,118 INFO mapreduce.Job: Counters: 54 ... 作业任务运行完成后,进入Hive Beeline命令行,查询t2表数据内容,查看数据分析结果。 select * from t2; +----------+----------+ | t2.col1 | t2.col2 | +----------+----------+ | 1 | 2 | | 2 | 2 | | 3 | 1 | +----------+----------+
  • 获取样例工程 通过开源镜像站获取样例工程。 下载样例工程的Maven工程源码和配置文件,并在本地配置好相关开发工具,可参考通过开源镜像站获取样例工程。 根据集群版本选择对应的分支,下载并获取MRS相关样例工程。 例如本章节场景对应示例为“hbase-example”样例,获取地址:https://github.com/huaweicloud/huaweicloud-mrs-example/tree/mrs-3.1.0/src/hbase-examples/hbase-example。 本地使用IDEA工具导入样例工程,等待Maven工程下载相关依赖包,具体操作可参考配置并导入样例工程。 图2 HBase样例工程示例 本地配置好Maven及SDK相关参数后,样例工程会自动加载相关依赖包。 将准备应用开发配置文件中获取的集群配置文件及用户认证文件放置在样例工程的“../src/main/resources/conf”目录下。 在“com.huawei.bigdata.hbase.examples”包的“TestMain”类中修改“userName”为实际用户名,例如“developuser”。 private static void login() throws IOException { if (User.isHBaseSecurityEnabled(conf)) { userName = "developuser"; //In Windows environment String userdir = TestMain.class.getClassLoader().getResource("conf").getPath() + File.separator; //In Linux environment //String userdir = System.getProperty("user.dir") + File.separator + "conf" + File.separator; LoginUtil.setJaasConf(ZOOKEEPER_DEFAULT_ LOG IN_CONTEXT_NAME, userName, userKeytabFile); LoginUtil.login(userName, userKeytabFile, krb5File, conf); } } 本样例工程中,假定用户开发一个应用程序,用于管理企业中的使用A业务的用户信息,A业务操作流程如下: 序号 步骤 1 根据已有信息创建表。 2 导入用户数据。 3 增加“教育信息”列族,在用户信息中新增用户的学历、职称等信息。 4 根据用户编号查询用户姓名和地址。 5 根据用户姓名进行查询。 6 为提升查询性能,创建二级索引或者删除二级索引。 7 用户销户,删除用户信息表中该用户的数据。 8 A业务结束后,删除用户信息表。 例如以下创建用户信息表代码片段在com.huawei.bigdata.hbase.examples包的“HBaseSample”类的testCreateTable方法中,其他各功能代码片段详情说明可参考HBase数据读写示例程序。 public void testCreateTable() { LOG.info("Entering testCreateTable."); TableDescriptorBuilder htd = TableDescriptorBuilder.newBuilder(tableName); //创建表描述符 ColumnFamilyDescriptorBuilder hcd = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("info")); //创建列族描述符 hcd.setDataBlockEncoding(DataBlockEncoding.FAST_DIFF); //设置编码算法,HBase提供了DIFF,FAST_DIFF,PREFIX三种编码算法 hcd.setCompressionType(Compression.Algorithm.SNAPPY); htd.setColumnFamily(hcd.build()); //添加列族描述符到表描述符中 Admin admin = null; try { admin = conn.getAdmin(); //获取Admin对象,Admin提供了建表、创建列族、检查表是否存在、修改表结构和列族结构以及删除表等功能。 if (!admin.tableExists(tableName)) { LOG.info("Creating table..."); admin.createTable(htd.build());//调用Admin的建表方法。 LOG.info(admin.getClusterMetrics().toString()); LOG.info(admin.listNamespaceDescriptors().toString()); LOG.info("Table created successfully."); } else { LOG.warn("table already exists"); } } catch (IOException e) { LOG.error("Create table failed " ,e); } finally { if (admin != null) { try { admin.close(); } catch (IOException e) { LOG.error("Failed to close admin " ,e); } } } LOG.info("Exiting testCreateTable."); }
  • 参考信息 在添加规则时,可以参考表1配置相应的指标。 混合集群的支持分析集群和流式集群的所有指标。 表1该表中不同数值类型取值精度如下: 整型:整数。 百分比:0.01。 比率:0.01。 表1 弹性伸缩指标列表 集群类型 指标名称 数值类型 说明 流式集群 StormSlotAvailable 整型 Storm组件的可用slot数。 取值范围为[0~2147483646]。 StormSlotAvailablePercentage 百分比 Storm组件可用slot百分比。是可用slot数与总slot数的比值。 取值范围为[0~100]。 StormSlotUsed 整型 Storm组件的已用slot数。 取值范围为[0~2147483646]。 StormSlotUsedPercentage 百分比 Storm组件已用slot百分比。是已用slot数与总slot数的比值。 取值范围为[0~100]。 StormSupervisorMemAverageUsage 整型 Storm组件Supervisor的内存平均使用量。 取值范围为[0~2147483646]。 StormSupervisorMemAverageUsagePercentage 百分比 Storm组件Supervisor进程使用的内存占系统总内存的平均百分比。 取值范围[0 ~ 100]。 StormSupervisorCPUAverageUsagePercentage 百分比 Storm组件Supervisor进程使用的CPU占系统总CPU的平均百分比。 取值范围[0 ~ 6000]。 分析集群 YARNAppPending 整型 YARN组件挂起的任务数。 取值范围为[0~2147483646]。 YARNAppPendingRatio 比率 YARN组件挂起的任务数比例。是YARN挂起的任务数与YARN运行中的任务数比值。 取值范围为[0~2147483646]。 YARNAppRunning 整型 YARN组件运行中的任务数。 取值范围为[0~2147483646]。 YARNContainerAllocated 整型 YARN组件中已分配的container个数。 取值范围为[0~2147483646]。 YARNContainerPending 整型 YARN组件挂起的container个数。 取值范围为[0~2147483646]。 YARNContainerPendingRatio 比率 YARN组件挂起的container比率。是挂起的container数与运行中的container数的比值。 取值范围为[0~2147483646]。 YARNCPUAllocated 整型 YARN组件已分配的虚拟CPU核心数。 取值范围为[0~2147483646]。 YARNCPUAvailable 整型 YARN组件可用的虚拟CPU核心数。 取值范围为[0~2147483646]。 YARNCPUAvailablePercentage 百分比 YARN组件可用虚拟CPU核心数百分比。是可用虚拟CPU核心数与总虚拟CPU核心数比值。 取值范围为[0~100]。 YARNCPUPending 整型 YARN组件挂起的虚拟CPU核心数。 取值范围为[0~2147483646]。 YARNMemoryAllocated 整型 YARN组件已分配内存大小。单位为MB。 取值范围为[0~2147483646]。 YARNMemoryAvailable 整型 YARN组件可用内存大小。单位为MB。 取值范围为[0~2147483646]。 YARNMemoryAvailablePercentage 百分比 YARN组件可用内存百分比。是YARN组件可用内存大小与YARN组件总内存大小的比值。 取值范围为[0~100]。 YARNMemoryPending 整型 YARN组件挂起的内存大小。 取值范围为[0~2147483646]。 在添加资源计划时,可以参考表2配置相应的参数。 表2 资源计划配置项说明 配置项 说明 生效日期 资源计划的生效日期。默认是每日生效,也可以选择周一至周日任意一天或几天生效。 时间范围 资源计划的起始时间和结束时间,精确到分钟,取值范围[00:00, 23:59]。例如资源计划开始于早上8:00,结束于10:00,则配置为8:00-10:00。结束时间必须晚于开始时间至少30分钟。不同资源计划配置的时间段不可交叉。 节点数量范围 资源计划内的节点数量上下限,取值范围[0,500],在资源计划时间内,集群Task节点数量小于最小节点数时,弹性伸缩会将集群Task节点一次性扩容到最小节点数。在资源计划时间内,集群Task节点数量大于最大节点数时,弹性伸缩会将集群Task节点一次性缩容到最大节点数。最小节点数必须小于或等于最大节点数。
  • 弹性伸缩规则与资源计划叠加使用 登录MRS管理控制台。 选择“现有集群”,单击待操作的集群名称,进入集群详情页面。 选择“弹性伸缩”页签,进入配置弹性伸缩界面。 单击“新增弹性伸缩”按钮,并配置“节点数量范围”为“2 - 4”。 图2 配置弹性伸缩 配置资源计划。 单击默认范围下方的“配置指定时间段的节点数量范围”。 配置“时间范围”和“节点数量范围”。 “时间范围”:“07:00-13:00” “节点数量范围”:“5-8” 图3 弹性伸缩 配置弹性伸缩规则。 勾选“扩容”。 单击右侧“添加规则”,进入“添加规则”页面。 图4 添加规则 “规则名称”:default-expand-2 “如果”:在下拉框中选择规则对象及约束要求,例如YARNAppRunning 大于 75 “持续”:1个五分钟 “添加”:1个节点 “冷却时间”:20分钟 单击“确定”。 勾选“我同意授权MRS服务根据以上策略自动进行节点扩容/缩容操作。”。 单击“确定”,等待弹性伸缩集群设置完成。
  • 操作场景 本入门指导以如下业务场景为例,介绍弹性伸缩规则与资源计划均叠加使用的操作: 某项实时处理业务数据量在周一、周二和周六7:00~13:00出现规律性变化,但是数据量变化并非非常平稳。假设在周一、周二和周六7:00~13:00期间,需要Task节点的数量范围是5~8个,其他时间需要Task节点数量是2~4个。 因此可以在资源计划的基础上,设置基于负载的弹性伸缩规则,以实现当数据量超出预期后,Task节点数量可以在资源计划规定的范围内根据负载情况进行浮动,但不会超出该规定范围。资源计划触发时,会以变化最小的方式使节点数量满足计划规定范围,即如果需要扩容则扩容到计划节点数量范围的下限,如果需要缩容则缩容到计划节点数量范围的上限。
  • 添加Task节点 MRS集群创建成功之后,如果需要规划Task类型的节点组进行弹性伸缩,可通过手动添加节点组的方式进行配置。 “自定义”类型集群添加Task节点操作步骤: 在集群详情页面,选择“节点管理”页签,单击“新增节点组”,进入“新增节点组”页面。 节点类型选择“Task”,“部署角色”参数默认选择“NM”部署NodeManager角色,则新增节点组为Task节点组,其他参数根据需要配置。 图1 添加Task节点组 非“自定义”类型集群添加Task节点操作步骤: 在集群详情页面,选择“节点管理”页签,单击“配置Task节点”,进入“配置Task节点”页面。 配置“节点类型”、“节点规格”、“节点数量”、“系统盘”,如开启“添加数据盘”后,还需要配置数据盘的存储类型、大小和数量。 单击“确定”。
  • 规则说明 2020年10月16日前,未在CodeArts某个区域下产生过费用的用户,按照新版计费规则,需在该区域开通/购买CodeArts或单独购买CodeArts Build套餐后使用。 在该区域内产生过费用的用户,延续旧版计费规则,可参考购买服务在该区域开通编译构建服务包年/包月套餐。 例如: 用户于2020年3月在“华北-北京四”购买了半年期的包月套餐。由于疫情影响业务,套餐到期后关闭了CodeArts服务;2020年10月20日将重新启用CodeArts。 若用户仍使用“华北-北京四”,可以购买旧版套餐使用。 若用户使用其它区域,则需购买CodeArts或者编译构建服务新版计费。 更多计费详情,请参考计费说明。
  • 购买服务 进入购买编译构建服务页面。 确认服务规格信息,单击“免费开通”。 表1 资源规格 资源项 资源规格 构建时长(分钟/月) 1800分钟/月。 构建并发(个) 1个内置执行机(2U8G)和1个自定义执行机并发。 确认套餐包配置信息,勾选“我已经阅读并同意”协议,单击页面右下角“立即开通”,即可下单成功。 表2 套餐包配置 配置项 配置详情 计费模式 包年/包月。 区域 选择需要使用的区域。不同区域购买的资源不能跨区使用,需慎重选择。 产品 选择“Build专业版”。 产品描述 免费使用构建时长1800分钟/月,单租户1个内置执行机(2U8G)并发和1个自定义执行机并发,使用限制性资源池,超过并发数时构建任务会进行排队。用户可额外购买构建加速包提升效率和购买构建并发包扩容。 购买时长 选择“1个月”。 自动续费 勾选后将开启自动续费。自动续费规则请参考自动续费规则说明。 下单成功即服务开通成功。
共100000条