华为云用户手册

  • 编译并运行程序 编译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管理员用户的密码。 确认密码:再次输入密码。 登录方式:选择登录E CS 节点的登录方式。 密码:设置登录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节点”页面。 配置“节点类型”、“节点规格”、“节点数量”、“系统盘”,如开启“添加数据盘”后,还需要配置数据盘的存储类型、大小和数量。 单击“确定”。
  • Kafka实例的SASL_SSL开关如何修改? 在“华北-北京一”、“中东-利雅得”、“拉美-圣保罗一”和“拉美-圣地亚哥”区域,Kafka SASL_SSL开关不支持购买实例后修改,在购买时,请慎重选择,如果购买后需要修改,需要重新购买实例。 除“华北-北京一”、“中东-利雅得”、“拉美-圣保罗一”和“拉美-圣地亚哥”以外的区域,集群版实例的SASL_SSL开关支持修改,具体步骤请参考修改实例的接入方式。单机版实例不支持SASL_SSL功能。 父主题: 实例问题
  • Kafka实例是否支持修改访问端口? Kafka实例的访问端口固定,不支持修改。 如果是访问未开启SASL的Kafka实例 支持的访问方式如下:同一VPC内访问、公网访问、跨VPC访问和DNAT访问。 同一VPC内访问,访问端口为9092。 公网访问,访问端口为9094。 使用VPCEP跨VPC访问,访问端口为9011。 使用对等连接跨VPC访问,访问端口为9092。 DNAT访问,访问端口为9011。 如果是访问开启SASL的Kafka实例 支持的访问方式如下:同一VPC内访问、公网访问、跨VPC访问和DNAT访问。 同一VPC内访问,访问端口为9093。 公网访问,访问端口为9095。 使用VPCEP跨VPC访问,访问端口为9011。 使用对等连接跨VPC访问,访问端口为9093。 DNAT访问,访问端口为9011。 在访问Kafka实例之前,需要确保安全组是否配置正确,配置要求,请参考选择和配置安全组。 父主题: 实例问题
  • 包年/包月资源 对于包年/包月计费模式的资源,例如包年/包月的Kafka实例,用户在购买时会一次性付费,服务将在到期后自动停止使用。 如果在计费周期内不再使用包年/包月资源,您可以执行退订操作,系统将根据资源是否属于五天无理由退订、是否使用代金券和折扣券等条件返还一定金额到您的账户。详细的退订规则请参见云服务退订规则概览。 如果您已开启“自动续费”功能,为避免继续产生费用,请在自动续费扣款日(默认为到期前7日)之前关闭自动续费。
  • 规则说明 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个月”。 自动续费 勾选后将开启自动续费。自动续费规则请参考自动续费规则说明。 下单成功即服务开通成功。
  • 业务架构画图 左侧导航树选择“架构设计”进入架构设计页面。 点击左上角“新建业务架构”,需要填写架构名称,选择架构类型(对画图无影响),填写描述,选择部署情况(对画图无影响)。 “业务架构”列表中找到刚刚新建的业务架构图,鼠标放到架构图中央,单击“查看架构图”,进入架构图。 单击画图上方“浏览”开关打开编辑功能。 左侧提供了画图需要的基础图元。 左侧“部署架构”一栏包含了已经创建好的部署架构图,可以拖拽至画布进行关联画图,还可以双击部署架构图图元查看架构图信息。
  • 更多操作 您还可以对Druid进行以下操作。 表3 Druid管理 操作名称 操作步骤 导入 在Druid页面单击“导入”。 上传文件。 查看导入进度 在Druid页面单击“查看导入进度”。 导出 在Druid页面列表中,勾选需要导出的Druid数据源。 单击列表上方的“导出”。 编辑Tags 在Druid页面单击“编辑Tags”。 在“编辑Tags”页面单击“新建Tags”。 输入Tags并单击“保存”。 单击“确定”。 关联Tags 在Druid页面列表中,单击待关联Tags数据源所在行的“关联Tags”。 选择已新建的Tags。 单击“确定”。 说明: 关联Tags之前须先编辑并新建Tags。 编辑数据源 在Druid页面列表中,单击待编辑Druid数据源所在行的“编辑”。 删除数据源 在Druid页面列表中,单击待删除Druid数据源所在行的“删除”。 查看操作历史 在Druid页面列表中,单击待查看操作历史的Druid数据源所在行的“操作历史”。 查看历史版本信息 在Druid页面列表中,单击待查看历史版本信息的Druid数据源所在行的“历史版本信息”。 (可选)可单击历史版本所在行的“对比当前版本”,查看版本差异。
  • 创建提取任务 在Druid页面列表中,单击待编辑任务的Druid数据源所在行的“编辑任务”,进入该数据源提取任务页面。 单击“创建任务”,进入“创建任务”页面。 配置任务参数,参数说明如表2所示。配置完成后,单击“确定”。 表2 配置任务参数说明 参数名称 参数说明 名称 Druid提取任务名,默认与数据源同名,无需手动填写。 描述 输入描述信息。 调度集成 定时执行Druid提取任务的调度集群。 Kafka Topic 选择需要消费数据的kafka topic。 使用最早offset消费 首次提交的任务设置为false,补数据时配置为true。 任务数 需要多少个并发进程同时读取该druid任务所对应的kafka topic,任务数(默认为2)应该小于topic分区数,并且能被topic分区数所整除,这样每个druid的子任务可以读取相同的数据量,达到负载均衡的效果。 指标列表 该指标列表由创建数据源时选择的指标决定,如果指标与对应的kafka字段名一致,会自动填充,如果不一致,需手动添加映射。 任务配置完成后,在Druid页面列表中,单击已编辑的任务的Druid数据源所在行的“启动”,启动导流任务。 在数据源生命周期内,Druid集群会持续提取Kafka数据到Druid数据源中。
  • 更多操作 您还可以对组件资源进行以下操作。 表3 组件管理操作 操作名称 操作步骤 下载 在代码包详情列表,可以选择需要下载的版本所在行“操作”列的“下载”。 解析 在代码包详情列表,可以选择需要解析的版本所在行“操作”列的“解析”。 激活、去激活 在代码包详情列表,可以选择需要激活的版本所在行“操作”列的“激活”。 已激活的版本,如需回退到之前的版本,可以把新版本的代码包“去激活”,变更后即可回退为最后一个激活的版本。
  • 修订记录 发布日期 修改说明 2024-05-30 第七十一次正式发布。 新增: 添加SQL白名单章节。 管理SQL白名单章节。 2024-05-13 第七十次正式发布。 新增共享VPC章节。 配置隐私数据保护规则补充结果集存储只支持agent方式审计数据库的说明。 2024-04-10 第六十九次正式发布。 控制台新风格升级。 2023-06-30 第六十八次正式发布。 新增如下章节: 查看趋势分析章节; 5.4-升级数据库审计实例版本章节。 2023-04-23 第六十七次正式发布。 修改流程指引章节,增加免Agent审计操作流程。 2022-11-30 第六十六次正式发布。 新增章节5.1-总览。 2022-11-16 第六十五次正式发布。 新增自动备份的延时说明。 2022-06-08 第六十四次正式发布。 DBSS对接CES功能上线,新增章节: DBSS监控指标说明 设置监控告警规则 查看监控指标 2022-03-24 第六十三次正式发布。 手动备份审计日志功能下线。 购买数据库安全审计:新增参数“企业项目”。 5.9-备份和恢复数据库审计日志:新增“OBS细粒度授权”操作;自动备份时,备份周期可选“每天”和“每小时”。 2022-01-07 第六十二次正式发布。 表1:新增“数据库类型”选择“MySQL”时,自动关联获取数据库列表,按需选择即可的说明。 2021-07-15 第六十一次正式发布。 修改内容:将服务列表入口“安全”修改为“ 安全与合规 ”。 新增内容如下: 添加SQL注入规则:新增“添加SQL注入规则”。 添加数据库:新增选择 GaussDB (for MySQL)时自动关联库内所有实例说明。 添加Agent(ECS/BMS自建数据库):数据库端添加Agent时,新增阈值自定义功能。 操作步骤:告警信息新增“Agent异常”筛选。 2021-06-17 第六十次正式发布。 表1:新增“数据库类型”选择“GaussDB(for MySQL)”时,自动关联获取数据库列表,按需选择即可的说明。 2021-04-19 第五十九次正式发布。 安装Agent(Linux操作系统),修改Agent安装包命名。 管理添加的数据库和Agent,新增“SHA256校验值”,校验Agent包的完整性。 卸载Agent,修改Agent安装包命名。 2021-04-01 第五十八次正式发布。 “数据库安全防护”相关内容下线。 2021-03-22 第五十七次正式发布。 步骤二:添加Agent,优化相关内容描述。 添加风险操作,优化相关内容描述。 2021-01-19 第五十六次正式发布。 优化数据库安全审计步骤流程。 2020-12-18 第五十五次正式发布。 新增步骤四:添加安全组规则。 流程指引,新增添加安全组规则描述。 步骤二:添加Agent,优化相关内容描述。 步骤三:下载并安装Agent,优化相关内容描述。 5.6-查看审计结果,新增前提条件。 2020-12-15 第五十四次正式发布。 步骤一:添加数据库,优化相关内容描述。 2020-11-27 第五十三次正式发布。 添加审计范围,审计范围新增“例外IP”功能。 2020-10-14 第五十二次正式发布。 购买数据库安全审计,新增购买数据库安全审计实例时选择VPC的说明描述。 “购买数据库安全防护”,新增购买数据库安全防护实例时选择VPC的说明描述。 2020-09-23 第五十一次正式发布。 添加风险操作,新增一条默认风险操作“数据库拖库检测”。 2020-08-31 第五十次正式发布。 查看SQL语句详细信息,新增审计语句和结果集字数长度限制。 创建用户并授权使用DBSS,优化相关内容描述。 2020-07-31 第四十九次正式发布。 设置告警通知,告警通知方式变更,对接 SMN 服务,通知方式多样化。 下线“设置邮件通知”章节。 2020-07-20 第四十八次正式发布。 5.9-备份和恢复数据库审计日志,新增备份日志说明。 2020-07-08 第四十七次正式发布。 安装Agent(Linux操作系统),优化相关内容描述。 安装Agent(Windows操作系统),优化相关内容描述。 2020-06-29 第四十六次正式发布。 购买数据库安全审计,优化相关内容描述。 “购买数据库安全防护”,优化相关内容描述。 2020-06-16 第四十五次正式发布。 添加审计范围,优化相关内容描述。 设置告警通知,优化相关内容描述。 2020-06-08 第四十四次正式发布。 “步骤三:添加防护的数据库”,合并“添加防护的DDM”。 “步骤四:修改业务侧配置文件”,修改章标题并优化相关内容描述。 2020-06-05 第四十三次正式发布。 “购买数据库安全防护”,优化相关内容描述。 添加审计范围,新增审计范围的操作类型。 查看告警信息,新增“日志备份OBS失败”告警类型。 2020-04-30 第四十二次正式发布。 步骤二:添加Agent,优化相关内容描述。 下载Agent,优化相关内容描述。 2020-04-21 第四十一次正式发布。 “步骤四:修改业务侧配置文件”,优化相关内容描述。 2020-04-03 第四十次正式发布。 更新界面截图。 2020-03-20 第三十九次正式发布。 修改管理数据库安全审计实例,新增实例运行状态。 2020-03-16 第三十八次正式发布。 新增字符集“GBK”,oracle数据库增加“19c”版本。 “数据库安全防护故障排查”调整为FAQ。 “数据库安全审计故障排查”调整为FAQ。 2020-03-03 第三十七次正式发布。 修改“购买数据库安全防护”,新增防护实例创建失败相关内容。 修改“管理数据库安全防护实例”,新增查看详情操作说明。 修改购买数据库安全审计,新增审计实例创建失败相关内容。 修改步骤一:添加数据库,优化相关内容描述。 修改管理数据库安全审计实例,新增查看详情操作说明。 2020-02-21 第三十六次正式发布。 新增安装Agent(Windows操作系统)。 修改步骤二:添加Agent,新增添加Agent场景条件。 修改安装Agent(Linux操作系统)。 修改卸载Agent,新增Windows相关描述。 新增Windows相关描述。 2020-01-15 第三十五次正式发布。 修改添加Agent,优化内容描述。 修改安装Agent(Linux操作系统),优化内容描述。 修改备份和恢复数据库审计日志,优化内容描述。 2020-01-06 第三十四次正式发布。 修改权限管理章节,更新界面截图。 修改添加Agent,优化内容描述。 修改安装Agent(Linux操作系统),优化内容描述。 修改如何查看 云审计 日志,优化内容描述以及更新界面截图。 2019-12-23 第三十三次正式发布。 优化“数据库安全防护使用指导”章节架构。 更新Console界面截图。 2019-11-30 第三十二次正式发布。 新增安装Agent(Windows操作系统)。 修改“购买数据库安全防护”,更新截图以及相关内容描述。 修改添加数据库并开启审计,更新界面截图以及相关内容描述。 修改步骤二:添加Agent,更新界面截图以及相关内容描述。 2019-10-24 第三十一次正式发布。 修改步骤二:添加Agent,优化相关内容描述。 修改步骤三:下载并安装Agent,优化相关内容描述。 2019-10-16 第三十次正式发布。 修改步骤二:添加Agent,优化相关内容描述。 2019-08-29 第二十九次正式发布。 “登录HexaTier ”章节修改为常见问题“如何登录HexaTier?”。 修改“管理数据库安全防护实例”,更新界面截图以及相关内容描述。 2019-08-21 第二十八次正式发布。 修改“登录HexaTier”章节,优化操作入口描述。 修改“数据库安全防护相关操作”,优化操作入口描述。 修改“数据库安全审计使用指导”,优化操作入口描述。 修改“故障排查”章节,优化操作入口描述。 2019-08-01 第二十七次正式发布。 修改“登录HexaTier”章节,更新界面截图以及优化相关内容描述。 修改“数据库安全防护相关操作”,更新界面截图以及优化相关内容描述。 2019-07-30 第二十六次正式发布。 修改购买数据库安全审计,优化相关内容描述。 修改其他操作,优化相关内容描述。 2019-07-22 第二十五次正式发布。 新增“购买数据库安全防护”。 新增购买数据库安全审计。 新增“配置隐私数据保护规则”。 新增“管理隐私数据保护规则”。 修改“重置HexaTier登录密码”,优化相关内容描述。 修改管理添加的数据库和Agent,更新界面截图以及优化相关内容描述。 2019-06-28 第二十四次正式发布。 新增“数据库安全防护无法连接防护数据库”。 新增“无法访问数据库安全防护界面”。 2019-06-25 第二十三次正式发布。 新增“数据库安全审计运行正常但无审计记录”。 修改“Agent与数据库安全审计实例之间通信异常”,优化相关内容描述。 修改“无法使用数据库安全审计”,优化相关内容描述。 2019-06-14 第二十二次正式发布。 新增“重置HexaTier登录密码”。 修改“登录HexaTier”章节,更新界面截图以及修改相关内容描述。 修改“数据库安全防护相关操作”,更新界面截图以及修改相关内容描述。 2019-06-12 第二十一次正式发布。 修改“数据库安全审计使用指导”,调整了大纲,更新界面截图以及修改相关内容描述。 新增管理备份的审计日志。 2019-06-10 第二十次正式发布。 修改“数据库安全审计使用指导”章节,更新界面截图以及修改相关内容描述。 2019-05-30 第十九次正式发布。 修改添加数据库并开启审计,修改相关内容描述。 2019-05-22 第十八次正式发布。 新增权限管理章节。 新增“Agent与数据库安全审计实例之间通信异常”。 修改步骤二:添加Agent,优化相关内容描述。 修改“设置邮件和告警通知”,优化相关内容描述。 修改管理数据库审计报表,优化相关内容描述。 修改备份和恢复数据库审计日志,优化相关内容描述。 2019-05-10 第十七次正式发布。 修改“添加数据库”,更新截图以及优化相关内容描述。 修改“登录HexaTier”章节,更新截图以及相关内容描述。 修改“数据库安全防护相关操作”,更新截图以及相关内容描述。 2019-04-15 第十六次正式发布。 修改添加审计范围章节,优化相关内容描述。 2019-04-08 第十五次正式发布。 修改“数据库安全审计配置流程”章节,修改了流程图。 修改备份和恢复数据库审计日志,补充相关内容描述。 修改“数据库安全审计使用指导”,更新界面截图。 2019-03-30 第十四次正式发布。 修改添加数据库章节,优化相关内容描述。 2019-01-15 第十三次正式发布。 调整文档大纲,优化内容描述。 2018-12-25 第十二次正式发布。 新增“无法使用数据库安全审计”。 2018-12-06 第十一次正式发布。 新增“配置数据库防火墙策略”。 新增“基于发现结果生成规则”。 2018-10-15 第十次正式发布。 优化部分内容描述。 2018-09-27 第九次正式发布。 优化“登录HexaTier”章节内容描述。 2018-09-12 第八次正式发布。 优化了内容描述。 2018-07-19 第七次正式发布。 新增“HexaTier”章节。 新增“产品优势”章节。 新增“入门”章节。 新增“连接DDM作为受保护的数据库”章节。 新增“配置参数”章节。 修改“使用场景”章节,优化了内容描述。 2018-04-27 第六次正式发布。 新增5.11-云审计服务支持的关键操作章节。 2018-03-22 第五次正式发布。 调整了文档大纲,并修改了部分内容描述。 2018-01-30 第四次正式发布。 修改“申请DBSS实例”章节,更新界面截图和相关描述。 修改“数据库防护控制台操作指导”章节,更新相关内容描述。 2017-12-04 第三次正式发布。 新增“解绑弹性IP”章节。 2017-11-02 第二次正式发布。 修改“使用场景”章节,优化了内容描述。 修改“管理实例”章节,更新了界面截图以及相关内容描述。 修改“登录HexaTier”章节,修改了操作步骤。 修改“配置高可用模式”章节,修改了操作步骤。 2017-09-15 第一次正式发布。
  • 评估由配置变更触发的示例函数 Config服务检测到自定义合规规则范围内的资源发生更改时,会调用函数的示例如下: import time import http.client from huaweicloudsdkcore.auth.credentials import GlobalCredentials from huaweicloudsdkcore.exceptions.exceptions import ConnectionException from huaweicloudsdkcore.exceptions.exceptions import RequestTimeoutException from huaweicloudsdkcore.exceptions.exceptions import ServiceResponseException from huaweicloudsdkconfig.v1.region.config_region import ConfigRegion from huaweicloudsdkconfig.v1.config_client import ConfigClient from huaweicloudsdkconfig.v1 import PolicyResource, PolicyStateRequestBody from huaweicloudsdkconfig.v1 import UpdatePolicyStateRequest ''' 合规规则评估逻辑: 返回“Compliant” 或 “NonCompliant” 本示例中, 当资源类型为ecs.cloudservers, 且该ecs的vpcId字段不是合规规则参数所指定的vpcId时, 会返回不合规, 否则返回合规。 ''' def evaluate_compliance(resource, parameter): if resource.get("provider") != "ecs" or resource.get("type") != "cloudservers": return "Compliant" vpc_id = resource.get("properties", {}).get("metadata", {}).get("vpcId") return "Compliant" if vpc_id == parameter.get("vpcId") else "NonCompliant" def update_policy_state(context, domain_id, evaluation): auth = GlobalCredentials(ak=context.getAccessKey(), sk=context.getSecretKey(), domain_id=domain_id) client = ConfigClient.new_builder() \ .with_credentials(credentials=auth) \ .with_region(region=ConfigRegion.value_of(region_id="cn-north-4")) \ .build() try: response = client.update_policy_state(evaluation) return 200 except ConnectionException as e: print("A connect timeout exception occurs while the Config performs some operations, exception: ", e.error_msg) return e.status_code except RequestTimeoutException as e: print("A request timeout exception occurs while the Config performs some operations, exception: ", e.error_msg) return e.status_code except ServiceResponseException as e: print("There is service error, exception: ", e.status_code, e.error_msg) return e.status_code def handler(event, context): domain_id = event.get("domain_id") resource = event.get("invoking_event", {}) parameters = event.get("rule_parameter") compliance_state = evaluate_compliance(resource, parameters) request_body = UpdatePolicyStateRequest(PolicyStateRequestBody( policy_resource = PolicyResource( resource_id = resource.get("id"), resource_name = resource.get("name"), resource_provider = resource.get("provider"), resource_type = resource.get("type"), region_id = resource.get("region_id"), domain_id = domain_id ), trigger_type = event.get("trigger_type"), compliance_state = compliance_state, policy_assignment_id = event.get("policy_assignment_id"), policy_assignment_name = event.get("policy_assignment_name"), evaluation_time = event.get("evaluation_time"), evaluation_hash = event.get("evaluation_hash") )) for retry in range(5): status_code = update_policy_state(context, domain_id, request_body) if status_code == http.client.TOO_MANY_REQUESTS: print("TOO_MANY_REQUESTS: retry again") time.sleep(1) elif status_code == http.client.OK: print("Update policyState successfully.") break else: print("Failed to update policyState.") break
  • 测试结果 以下测试结果仅供参考,不同局点环境和网络波动等客观条件可能产生性能差异。 QPS:即Query Per Second,表示每秒处理的读写操作数,单位是次/秒。 平均/最大时延:操作的平均/最大延迟时间,单位为毫秒(ms)。 x%延迟:指x%操作的延迟时间,单位为毫秒(ms)。例如该指标的值为10ms,99.99%延迟表示99.99%的请求可以在10ms内被处理。 表1 SET操作命令测试结果(未开启SSL场景) 实例规格 实例CPU类型 并发连接数(个) QPS 平均时延(ms) 99%延迟(ms) 99.9%延迟(ms) 32G X86 1000 322899.21 2.661 4.319 8.511 3000 360336.14 7.757 13.055 29.439 10000 330378.22 29.411 97.279 153.599 表2 SET操作命令测试结果(开启SSL场景) 实例规格 实例CPU类型 并发连接数(个) QPS 平均时延(ms) 99%延迟(ms) 99.9%延迟(ms) 32G X86 1000 238307.26 3.603 5.151 6.527 3000 185455.62 13.196 20.607 352.255 10000 111913.19 57.537 96.767 121.343 表3 GET操作命令测试结果(未开启SSL场景) 实例规格 实例CPU类型 并发连接数(个) QPS 平均时延(ms) 99%延迟(ms) 99.9%延迟(ms) 32G X86 1000 450422.66 1.875 2.767 6.879 3000 432450.2 6.451 12.095 28.415 10000 507338.44 23.001 95.231 176.127 表4 GET操作命令测试结果(开启SSL场景) 实例规格 实例CPU类型 并发连接数(个) QPS 平均时延(ms) 99%延迟(ms) 99.9%延迟(ms) 32G X86 1000 274066.16 3.076 4.255 7.071 3000 201063.51 11.743 18.047 387.071 10000 116026.38 51.284 84.479 136.191
  • 测试命令 未开启SSL场景: ./memtier_benchmark -s {IP} -p {port} -c {connect_number} -t {thread} -n allkeys --key-prefix="xxxx" --key-minimum=1 --key-maximum={max_key} --key-pattern=P:P --ratio=1:0 -d {datasize} --cluster-mode 参数参考值:-c {connect_number}:1000,--key-maximum{max_key}:2000000,-d {datasize}:32。 开启SSL场景: ./memtier_benchmark -s {IP} -p {port} -c {connect_number} -t {thread} -n allkeys --key-prefix="xxxx" --key-minimum=1 --key-maximum={max_key} --key-pattern=P:P --ratio=1:0 -d {datasize} --cluster-mode --tls --cacert ca.crt 参数参考值:-c {connect_number}:1000,--key-maximum{max_key}:2000000,-d {datasize}:32。
  • 测试步骤 创建Redis缓存实例。 创建3台弹性云服务器(ECS),ECS选择与实例相同可用区、VPC、子网和安全组。 如果是测试单机或主备实例,创建1台ECS即可。 在每台ECS上安装memtier_benchmark。安装步骤参考下载与安装工具。 每台ECS上执行测试命令。 memtier_benchmark -s {IP} -n {nreqs} -c {connect_number} -t 4 -d {datasize} 如果实例类型为cluster集群,则命令为memtier_benchmark --cluster-mode -s {IP} -n {nreqs} -c {connect_number} -t 4 -d {datasize} 参数参考值:-c {connect_number}:200,-n {nreqs}:10000000,-d {datasize}:32。 -s表示实例的域名连接地址或IP地址。 -t表示基准测试使用的线程数量 -c表示客户端连接数 -d表示单条数据大小,单位byte -n表示测试包数量 不断调整客户端连接数,执行4,得到每秒最大操作数。 取3台测试ECS得到的每秒操作数总和,即为对应规格的性能数据。 如果测试Redis集群,建议每台测试ECS各开启两个benchmark客户端。
  • 下载与安装工具 以操作系统为CentOS 8.0为例进行安装。 准备工作。 安装编译所需的工具。 yum install -y autoconf yum install -y automake yum install -y make yum install -y gcc-c++ yum install -y git 启用PowerTools存储库的方法。 dnf config-manager --set-enabled PowerTools 安装需要的依赖库。 yum install -y pcre-devel yum install -y zlib-devel yum install -y libmemcached-devel yum install -y openssl-devel 安装libevent库。 yum install -y libevent-devel 下载、编译、安装memtier_benchmark的库。 根目录下创建文件夹,用于下载memtier_benchmark。 mkdir /env 下载memtier_benchmark源码。 cd /env git clone https://github.com/RedisLabs/memtier_benchmark.git 进入源码目录。 cd memtier_benchmark 编译生成可执行文件memtier_benchmark。 autoreconf -ivf ./configure make 将工具安装到系统中。 make install 运行帮助命令查看是否安装成功。 memtier_benchmark --help
  • 测试结果 以下测试结果仅供参考,不同局点环境和网络波动等客观条件可能产生性能差异。 QPS:即Query Per Second,表示每秒处理的读写操作数,单位是次/秒。 平均/最大时延:操作的平均/最大延迟时间,单位为毫秒(ms)。 x%延迟:指x%操作的延迟时间,单位为毫秒(ms)。例如该指标的值为10ms,99.99%延迟表示99.99%的请求可以在10ms内被处理。 表1 SET操作命令测试结果 实例规格 实例CPU类型 并发连接数(个) QPS 99.99%延迟(ms) 第一个100%延迟(ms) 最后一个100%延迟(ms) 平均时延(ms) 8G X86 500 132068.98 11 18 205 3.298 10000 82386.58 171 178 263 69.275 8G ARM 500 94811.89 10 12 13 3.476 10000 61264.37 340 350 351 83.848 32G X86 500 131385.33 9.5 16 17 3.333 10000 82275.41 157 162.18 162.43 62.105 32G ARM 500 117553.02 8 21 22 3.875 10000 76001.7 175 386 387 99.362 表2 GET操作命令测试结果 实例规格 实例CPU类型 并发连接数(个) QPS 99.99%延迟(ms) 第一个100%延迟(ms) 最后一个100%延迟(ms) 平均时延(ms) 8G X86 500 138652.02 7 11 12 2.117 10000 82710.94 123.7 281.6 282.9 61.078 8G ARM 500 95432.59 8.8 10 214 3.186 10000 60984.16 217 337.15 337.92 83.321 32G X86 500 139113.02 6.6 10 11 2.119 10000 82489.36 100 105.66 106 60.968 32G ARM 500 139041.45 6 10 11 2.487 10000 81563.41 141 149 150 63
  • 测试命令 redis-benchmark -h {IP} -p {Port} -a {password} -n {nreqs} -r {randomkeys} -c {connection} -d {datasize} -t {command} 参数参考值:-c {connect_number}:500,-n {nreqs}:10000000,-r {randomkeys}:1000000,-d {datasize}:32,-t {command}:set。
  • 测试结果 以下测试结果仅供参考,不同局点环境和网络波动等客观条件可能产生性能差异。 QPS:即Query Per Second,表示每秒处理的读写操作数,单位是次/秒。 平均/最大时延:操作的平均/最大延迟时间,单位为毫秒(ms)。 x%延迟:指x%操作的延迟时间,单位为毫秒(ms)。例如该指标的值为10ms,99.99%延迟表示99.99%的请求可以在10ms内被处理。 表1 SET操作命令测试结果 实例规格 实例CPU类型 并发连接数(个) QPS 95%左右延迟(ms) 99.99%延迟(ms) 最大时延(ms) 64G X86 3000 1,323,935.00 3.3 9.4 220 5000 1,373,756.00 5.3 13 240 10000 1,332,074.00 11 26 230 80000 946,032.00 110 460 6800 64G ARM 3000 837,864.92‬ 5.8 16 78 5000 763,609.69‬ 10 29 240 10000 703,808.39 20 47 250 80000 625,841.69 170 410 940 表2 GET操作命令测试结果 实例规格 实例CPU类型 并发连接数(个) QPS 95%左右延迟(ms) 99.99%延迟(ms) 最大时延(ms) 64G X86 3000 1,366,153.00 3.3 9.3 230 5000 1,458,451.00 5.1 13 220 10000 1,376,399‬.00 11 29 440 80000 953,837‬.00 120 1300 2200 64G ARM 3000 764,114.55 6.1 17 100 5000 765,187.74 10 27 230 10000 731,310.95 20 47 250 80000 631,373.33 170 1300 1900
  • 测试步骤 创建Redis缓存实例。 创建3台弹性云服务器(ECS),ECS选择与实例相同可用区、VPC、子网和安全组。 如果是测试单机或主备实例,创建1台ECS即可。 在每台ECS上安装redis-benchmark。安装步骤参考下载与安装工具。 每台ECS上执行测试命令。 redis-benchmark -h {IP} -p {Port} -a {password} -n {nreqs} -r {randomkeys} -c {connect_number} -d {datasize} -t {command} 参数参考值:-c {connect_number}:200,-n {nreqs}:10000000,-r {randomkeys}:1000000,-d {datasize}:32。 -h表示实例的域名连接地址或IP地址。 -p表示实例的端口,默认为6379。 -a表示实例的连接密码,免密连接的实例无需输入-a {password}。 -t表示执行具体测试命令合集。例如只测试set命令时,使用-t set;如果要测试ping、get、set命令,则使用 -t ping,set,get,命令间使用“,”分隔。 -c表示客户端连接数。 -d表示单条数据大小,单位Byte。 -n表示测试包数量。 -r表示使用随机key数量。 不断调整客户端连接数,执行4,得到每秒最大操作数。 取3台测试ECS得到的每秒操作数总和,即为对应规格的性能数据。 如果测试Redis集群,建议每台测试ECS各开启两个benchmark客户端。 redis-benchmark 测试cluster集群实例时需要加 --cluster 参数,其他实例类型不需要加。 如果想对cluster集群的最大连接数进行性能压测,但是压测到1万连接时程序退出,或者报错 Cannot assign requested address。这说明是测试用的ECS本机性能不足,请先检查自己是否只用了1台ECS进行压测。想要对集群压测,建议准备3台ECS,每台ECS起3个redis-benchmark来测试redis实例的最大连接数。
  • 下载与安装工具 下载redis-6.0.9客户端。 wget http://download.redis.io/releases/redis-6.0.9.tar.gz 解压客户端压缩包。 tar xzf redis-6.0.9.tar.gz 进入redis-6.0.9的src目录下。 cd redis-6.0.9/src 编译源码。 make 查看是否有redis-benchmark可执行文件 ls 将工具安装到系统中。 make install
共100000条