云服务器内容精选

  • 基于HBase本地二级索引查询数据 在具有索引的用户表中,可以使用Filter来查询数据。对于创建单索引和组合索引的用户表,使用过滤器查询的结果与没有使用索引的表相同,但数据查询性能高于没有使用索引的表。 索引的使用规则如下: 对于为一个或多个列创建单个索引的情况: 当将此列用于AND或OR查询筛选时,使用索引可以提高查询性能。 例如,Filter_Condition(IndexCol1)AND / OR Filter_Condition(IndexCol2)。 当在查询中使用“索引列和非索引列”进行过滤时,此索引可以提高查询性能。 例如,Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2)AND Filter_Condition(NonIndexCol1)。 当在查询中使用“索引列或非索引列”进行筛选时,但不使用索引,查询性能不会提高。 例如,Filter_Condition(IndexCol1)AND / OR Filter_Condition(IndexCol2) OR Filter_Condition(NonIndexCol1)。 对于为多个列创建组合索引的情况: 当用于查询的列是组合索引的全部或部分列并且与组合索引具有相同的顺序时,使用索引会提高查询性能。 例如,为C1,C2和C3创建组合索引。 该索引在以下情况下生效: Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2)AND Filter_Condition(IndexCol3) Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2) FILTER_CONDITION(IndexCol1) 该索引在下列情况下不生效: Filter_Condition(IndexCol2)AND Filter_Condition(IndexCol3) Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol3) FILTER_CONDITION(IndexCol2) FILTER_CONDITION(IndexCol3) 当在查询中使用“索引列和非索引列”进行过滤时,使用索引可提高查询性能。 例如: Filter_Condition(IndexCol1)AND Filter_Condition(NonIndexCol1) Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2)AND Filter_Condition(NonIndexCol1) 当在查询中使用“索引列或非索引列”进行筛选时,但不使用索引,查询性能不会提高。 例如: Filter_Condition(IndexCol1)OR Filter_Condition(NonIndexCol1) (Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2))OR(Filter_Condition(NonIndexCol1)) 当多个列用于查询时,只能为组合索引中的最后一列指定值范围,而其他列只能设置为指定值。 例如,为C1,C2和C3创建组合索引。在范围查询中,只能为C3设置数值范围,过滤条件为“C1 = XXX,C2 = XXX,C3 = 数值范围”。
  • 相关接口 使用HIndex的API都在类org.apache.hadoop.hbase.hindex.client.HIndexAdmin中,相关接口介绍如下: 操作 接口 描述 注意事项 添加索引 addIndices() 将索引添加到没有数据的表中。调用此接口会将用户指定的索引添加到表中,但会跳过生成索引数据。因此,在此操作之后,索引不能用于scan/filter操作。该接口的使用场景为用户想要在具有大量预先存在用户数据的表上批量添加索引,其具体操作为使用诸如TableIndexer工具之类的外部工具来构建索引数据。 索引一旦添加则不能修改。若要修改,则需先删除旧的索引然后重新创建。 应注意不要在具有不同索引名称的相同列上创建两个索引,否则会导致存储和处理的资源浪费。 索引不能添加到系统表中。 向索引列put数据时不支持append和increment操作。 如果客户端出现任何故障,除非发生DoNotRetryIOException,否则应该重试。 索引列族按以下优先级从数据表中已存在的列族选取,优先级从高到低依次为: d、#、@、$、%、#0、@0、$0、%0、#1、@1 ...上至#255、@255、$255和%255 创建索引时,系统会在表中按以上优先级顺序检查是否存在以上列族,如果不存在,则将第一个不存在的列族设为索引列族。 例如: 数据表中仅存在d列族,则索引列族默认为#。 数据表中已存在d和#列族,则默认索引列族默认为@。 数据表中已存在d、#和$列族,则索引列族默认为@。 可以通过HIndex TableIndexer工具添加索引而无需建立索引数据。 addIndicesWithData() 将索引添加到有数据的表中。此方法将用户指定的索引添加到表中,并会对已经存在的用户数据创建对应的索引数据,也可先调用该方法生成索引再在存入用户数据的同时生成索引数据。在此操作之后,这些索引立即可用于scan/filter操作。 删除索引 dropIndices() 仅删除索引。该API从表中删除用户指定的索引,但跳过相应的索引数据。在此操作之后,索引不能用于scan/filter操作。集群在major compaction期间会自动删除旧的索引数据。 此API使用场景为表中包含大量索引数据且dropIndicesWithData()不可行。另外,也可以通过TableIndexer工具删除索引以及索引数据。 在索引的状态为ACTIVE,INACTIVE和DROPPING时,允许禁用索引的操作。 对于使用dropIndices()删除索引的操作,用户必须确保在将索引添加到具有相同索引名的表之前,相应的索引数据已被删除(即major compaction已完成)。 用户删除相应的索引会删除: 一个带有索引的列族。 组合索引所有列族中的任一个列族。 索引可以通过HIndex TableIndexer工具与索引数据一起删除。 dropIndicesWithData() 删除索引数据。此API删除用户指定的索引,并删除用户表中与这些索引对应的所有索引数据。在此操作之后,删除的索引完全从表中删除,不再可用于scan/filter操作。 启用/禁用索引 disableIndices() 该API禁用所有用户指定的索引,使其不再可用于scan/filter操作。 在索引的状态为ACTIVE,INACTIVE和BUILDING时允许启用索引的操作。 在索引的状态为ACTIVE和INACTIVE时允许禁用索引操作。 在禁用索引之前,用户必须确保索引数据与用户数据一致。如果在索引处于禁用状态期间没有在表中添加新的数据,索引数据与用户数据将保持一致。 启用索引时,可以通过使用TableIndexer工具构建索引来保证数据一致性。 enableIndices() 该API启用所有用户指定的索引,使其可用于scan/filter操作。 查看已创建的索引 listIndices() 该API可用于列出给定表中的所有索引。 无
  • 基于索引查询HBase表数据 在具有索引的用户表中,可以使用SingleColumnValueFilter来查询数据。当查询条件可以命中索引时,查询速度远快于原表查询。 索引的命中规则如下: 多个AND条件查询 当用于查询的列至少包含索引的一个列时,使用索引会提高查询性能。 例如,为C1、C2和C3创建组合索引。 该索引在以下情况下生效: Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2)AND Filter_Condition(IndexCol3) Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2) Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol3) Filter_Condition(IndexCol1) 该索引在下列情况下不生效: Filter_Condition(IndexCol2)AND Filter_Condition(IndexCol3) Filter_Condition(IndexCol2) Filter_Condition(IndexCol3) 当在查询中使用“索引列”和“非索引列”进行过滤时,使用索引可提高查询性能。当非索引列命中覆盖列时,查询性能最优;如果有需经常查询的非索引列,建议定义为覆盖列。例如: Filter_Condition(IndexCol1)AND Filter_Condition(NonIndexCol1) Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2)AND Filter_Condition(NonIndexCol1) 当多个列用于查询时,只能为组合索引中的最后一列指定值范围,而其他列只能设置为指定值。 例如,为C1、C2和C3创建组合索引。在范围查询中,只能为C3设置数值范围,过滤条件为“C1 = XXX,C2 = XXX,C3 = 数值范围”。 多个OR条件查询 例如,为C1、C2和C3创建组合索引。 仅对索引列首个字段进行过滤时(支持范围过滤),使用索引可提高查询性能。 Filter_Condition(IndexCol1)OR Filter_Condition(IndexCol1)OR Filter_Condition(IndexCol1) 对非索引和非索引列进行过滤时,无法命中索引,查询性能不会提高。 Filter_Condition(IndexCol1)OR Filter_Condition(NonIndexCol1) 组合查询时,最外层包含OR条件时无法命中索引,查询性能不会提高。 Filter_Condition(IndexCol1)OR Filter_Condition(NonIndexCol1) (Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2))OR(Filter_Condition(NonIndexCol1)) 减少OR条件使用,尤其是OR条件+范围条件,命中索引的情况下也会造成大范围查询,速度较慢。
  • 基于HBase本地二级索引查询数据 在具有索引的用户表中,可以使用Filter来查询数据。对于创建单索引和组合索引的用户表,使用过滤器查询的结果与没有使用索引的表相同,但数据查询性能高于没有使用索引的表。 索引的使用规则如下: 对于为一个或多个列创建单个索引的情况: 当将此列用于AND或OR查询筛选时,使用索引可以提高查询性能。 例如,Filter_Condition(IndexCol1)AND / OR Filter_Condition(IndexCol2)。 当在查询中使用“索引列”和“非索引列”进行过滤时,此索引可以提高查询性能。 例如,Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2)AND Filter_Condition(NonIndexCol1)。 当在查询中使用“索引列”或“非索引列”进行筛选时,但不使用索引,查询性能不会提高。 例如,Filter_Condition(IndexCol1)AND / OR Filter_Condition(IndexCol2) OR Filter_Condition(NonIndexCol1)。 对于为多个列创建组合索引的情况: 当用于查询的列是组合索引的全部或部分列并且与组合索引具有相同的顺序时,使用索引会提高查询性能。 例如,为C1,C2和C3创建组合索引。 该索引在以下情况下生效: Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2)AND Filter_Condition(IndexCol3) Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2) FILTER_CONDITION(IndexCol1) 该索引在下列情况下不生效: Filter_Condition(IndexCol2)AND Filter_Condition(IndexCol3) Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol3) FILTER_CONDITION(IndexCol2) FILTER_CONDITION(IndexCol3) 当在查询中使用“索引列”和“非索引列”进行过滤时,使用索引可提高查询性能。 例如: Filter_Condition(IndexCol1)AND Filter_Condition(NonIndexCol1) Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2)AND Filter_Condition(NonIndexCol1) 当在查询中使用“索引列”或“非索引列”进行筛选时,但不使用索引,查询性能不会提高。 例如: Filter_Condition(IndexCol1)OR Filter_Condition(NonIndexCol1) (Filter_Condition(IndexCol1)AND Filter_Condition(IndexCol2))OR(Filter_Condition(NonIndexCol1)) 当多个列用于查询时,只能为组合索引中的最后一列指定值范围,而其他列只能设置为指定值。 例如,为C1,C2和C3创建组合索引。在范围查询中,只能为C3设置数值范围,过滤条件为“C1 = XXX,C2 = XXX,C3 = 数值范围”。
  • HBase本地二级索引相关接口 使用HIndex的API都在类org.apache.hadoop.hbase.hindex.client.HIndexAdmin中,相关接口介绍如下: 表2 HBase Index相关接口 操作 接口 描述 注意事项 添加索引 addIndices() 将索引添加到没有数据的表中。调用此接口会将用户指定的索引添加到表中,但会跳过生成索引数据。因此,在此操作之后,索引不能用于scan/filter操作。该接口使用场景为用户想要在具有大量预先存在用户数据的表上批量添加索引,其具体操作为使用诸如TableIndexer工具之类的外部工具来构建索引数据。 索引一旦添加则不能修改。如果要修改,则需先删除旧的索引然后重新创建。 应注意不要在具有不同索引名称的相同列上创建两个索引,否则将会导致数据存储和查询处理的资源浪费。 索引不能添加到系统表中。 向索引列put数据时不支持append和increment操作。 如果客户端出现任何故障,除非发生DoNotRetryIOException,否则应该重试。 索引列族按以下优先级从数据表中已存在的列族选取,优先级从高到低依次为: d、#、@、$、%、#0、@0、$0、%0、#1、@1 ...上至#255、@255、$255和%255 创建索引时,系统会在表中按以上优先级顺序检查是否存在以上列族,如果不存在,则将第一个不存在的列族设为索引列族。 例如: 数据表中仅存在d列族,则索引列族默认为#。 数据表中已存在d和#列族,则默认索引列族默认为@。 数据表中已存在d、#和$列族,则索引列族默认为@。 可以通过HIndex TableIndexer工具添加索引而无需建立索引数据。 addIndicesWithData() 将索引添加到有数据的表中。此方法将用户指定的索引添加到表中,并会对已经存在的用户数据创建对应的索引数据,也可先调用该方法生成索引再在存入用户数据的同时生成索引数据。在此操作之后,这些索引立即可用于scan/filter操作。 删除索引 dropIndices() 仅删除索引。该API从表中删除用户指定的索引,但跳过相应的索引数据。在此操作之后,索引不能用于scan/filter操作。集群在major compaction期间会自动删除旧的索引数据。 此API使用场景为表中包含大量索引数据且dropIndicesWithData()不可行。另外,也可以通过TableIndexer工具删除索引以及索引数据。 在索引的状态为ACTIVE,INACTIVE和DROPPING时,允许禁用索引的操作。 对于使用dropIndices()删除索引的操作,用户必须确保在将索引添加到具有相同索引名的表之前,相应的索引数据已被删除(即major compaction已完成)。 用户删除相应的索引会删除: 一个带有索引的列族。 组合索引所有列族中的任一个列族。 索引可以通过HIndex TableIndexer工具与索引数据一起删除。 dropIndicesWithData() 删除索引数据。此API删除用户指定的索引,并删除用户表中与这些索引对应的所有索引数据。在此操作之后,删除的索引完全从表中删除,不再可用于scan/filter操作。 启用/禁用索引 disableIndices() 该API禁用所有用户指定的索引,使其不再可用于scan/filter操作。 在索引的状态为ACTIVE,INACTIVE和BUILDING时允许启用索引的操作。 在索引的状态为ACTIVE和INACTIVE时允许禁用索引操作。 在禁用索引之前,用户必须确保索引数据与用户数据一致。如果在索引处于禁用状态期间没有在表中添加新的数据,索引数据与用户数据将保持一致。 启用索引时,可以通过使用TableIndexer工具构建索引来保证数据一致性。 enableIndices() 该API启用所有用户指定的索引,使其可用于scan/filter操作。 查看已创建的索引 listIndices() 该API可用于列出给定表中的所有索引。 无
  • ConfigMap文件格式要求 ConfigMap资源文件支持json和yaml两种格式,且数据值大小不得超过1MB。 json格式 文件名称为configmap.json,配置示例如下: { "kind": "ConfigMap", "apiVersion": "v1", "metadata": { "name": "nginxconf", "namespace": "cci-namespace-demo" }, "data": { "nginx.conf": "server {\n listen 80;\n server_name localhost;\n\n location / {\n root html;\n index index.html index.htm;\n }\n}" } } yaml格式 文件名称为configmap.yaml,配置示例如下: kind: ConfigMap apiVersion: v1 metadata: name: nginxconf namespace: cci-namespace-demo data: nginx.conf: |- server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } }
  • 场景描述 本文旨在指导如何在Snt9b裸金属服务器上,进行磁盘合并挂载、安装docker等环境配置。在配置前请注意如下事项: 首次装机时需要配置存储、固件、驱动、网络访问等基础内容,这部分配置尽量稳定减少变化。 裸机上的开发形式建议开发者启动独立的Docker容器作为个人开发环境。Snt9b的裸机包含8卡算力资源,一般来说多人可以共用这个裸机完成开发与调测工作。多人使用为了避免冲突,建议各自在自己的docker容器中进行独立开发,并提前规划好每个人使用的具体卡号,避免相互影响。 ModelArts提供了标准化基础容器镜像,在容器镜像中已经预置了基础MindSpore或PyTorch框架和开发调测工具链,推荐用户直接使用该镜像,用户也可以使用自己的业务镜像或昇腾AscendHub提供的镜像。如果镜像中预置的软件版本不是您期望的版本,可以自行安装替换。 开发形式推荐通过容器中暴露的SSH端口以远程开发的模式(VSCode SSH Remote、 Xshell)连接到容器中进行开发,可以在容器中挂载宿主机的个人存储目录,用于存放代码和数据。 当前指导中很多操作步骤在最新发放的Snt9b裸机环境中已经预置,无需用户再手动配置,用户在操作中如发现某个步骤已有预置配置可直接跳过该步骤。
  • 验证操作 执行以下命令,将ipvs模式将切换成fullnat模式。 ipvs-switch fnat [root@localhost keepalived]# ipvs-switch fnat Clear ip_vs tables rmmod ip_vs modules doing depmod modprobe ip_vs modules switch to fnat mode successfully 主备LVS节点均需执行。
  • 前提条件 准备弹性负载均衡ELB,创建ELB的操作,请参考创建独享型负载均衡器。创建的ELB必须符合以下条件。如果已有符合条件的ELB,无需重复创建。 ELB的实例类型必须选择“独享型”,且必须开启“IP类型后端(跨VPC后端)”。 ELB的规格中必须包含“网络型(TCP/UDP)”。 ELB必须选择与Redis实例相同的VPC。 ELB必须绑定弹性公网IP(EIP)。 ELB必须有可用的端口。 单个ELB挂载多个实例时,Redis的性能会受限于ELB的规格。 为保护Redis实例的网络安全性,Redis实例必须配置访问密码,免密访问的实例不支持开启公网访问。如需修改免密访问的实例为密码访问,请参考重置缓存实例密码。
  • 开启公网访问并获取公网访问地址 登录分布式缓存服务管理控制台。 在管理控制台左上角单击,选择实例所在的区域。 单击左侧菜单栏的“缓存管理”,进入缓存管理页面。 单击需要开启公网访问的实例名称,进入该实例的基本信息页面。 单击“公网访问”后的“开启”。 在开启公网访问弹窗中勾选需要绑定的ELB,单击“确定”。 如果没有可选的ELB,单击页面提示的“弹性负载均衡”跳转链接,可前往ELB控制台页面进行创建。如果已经创建了ELB,未在ELB选择列表中,请参考前提条件中的说明排查ELB是否符合绑定条件。 Redis实例绑定ELB期间,请勿删除绑定的ELB和监听器,并保证ELB可用,否则会影响Redis的正常公网连接。 如果需要删除ELB实例,请先在Redis实例详情页面解除绑定(关闭公网连接),再在ELB控制台删除ELB实例。 图1 绑定ELB 开启公网公网状态显示“成功”后,表示开启公网访问成功。 单击左侧菜单栏的“概览”,返回实例基本信息页面查看公网访问信息。如需关闭公网访问,单击“关闭”。 图2 公网访问连接地址 上图中的“EIP”地址为Redis实例的公网访问地址,“监听器”后的端口号为公网访问的端口。 主备实例开启公网访问后,会生成两个监听器。一个主节点监听器(以listener-master开头)和一个备节点监听器(以listener-slave开头),分别用于监听实例的主节点和备节点。公网连接主备实例时请使用主监听器后的端口用于连接主备实例的主节点。仅当需要配置主备实例读写分离时,需要同时使用主、备监听器端口,分别连接主、备节点。 图3 主备实例公网连接地址 连接信息中的“连接地址”及“IP地址”为相同VPC内客户端访问Redis时的“ 域名 地址:端口”和“IP地址:端口”。
  • Redis实例配置ELB内网IP白名单(可选) 如果Redis开启了IP白名单,需要将ELB内网IP地址添加到Redis实例的IP白名单中,以确保ELB可以访问Redis实例: 单击“公网访问”中ELB后的链接,跳转到负载均衡器页面。 复制页面中的ELB“ID”。 单击页面中“IPv4私有地址”后的地址,跳转到对应子网页面。 选择“IP地址管理”页签,在第二个搜索框中筛选资源ID(已复制的ELB ID),获取ELB内网IP地址。 将ELB的全部内网IP地址添加到Redis的IP白名单中,添加方式请参考配置Redis访问白名单。
  • 约束与限制 如果“allow.everyone.if.no.acl.found”设置为“true”,且Topic未授权任何用户,此时所有的用户都可以订阅/发布此Topic。如果Topic已授权某一个或多个用户,此时只有授权的用户可以订阅/发布此Topic,其他未授权的用户不能订阅/发布此Topic。“allow.everyone.if.no.acl.found”在配置参数中修改。 如果“allow.everyone.if.no.acl.found”设置为“false”,此时只有授权的用户可以订阅/发布此Topic,其他未授权的用户不能订阅/发布此Topic。“allow.everyone.if.no.acl.found”在配置参数中修改。 如果Topic同时设置了“默认用户”权限和单个用户权限,取两者的并集。
  • 步骤五:验证接口连通性 参考使用客户端连接Kafka(关闭SASL)或者使用客户端连接Kafka(开启SASL),测试是否可以生产和消费消息。 测试接口连通性时,注意以下几点: 连接Kafka实例的地址为“advertised.listeners IP:9011”,以图8为例,连接Kafka实例的地址为“192.168.0.71:9011,192.168.0.11:9011,192.168.0.21:9011”。 在Kafka实例安全组的入方向规则中放通9011端口,以及198.19.128.0/17网段的地址。 如果Kafka实例的子网配置了网络ACL功能,需要在网络ACL的入方向规则中放通198.19.128.0/17网段的地址,以及 VPC终端节点 涉及的子网。 198.19.128.0/17是为VPC终端节点分配的网段,使用VPC终端节点需要放通此网段。
  • 配置SFS Turbo和OBS联动 SFS Turbo HPC型文件系统支持无缝访问存储在 对象存储OBS 存储桶中的对象,您可以指定SFS Turbo内的文件目录与OBS对象存储桶进行关联。 登录SFS管理控制台,在左侧导航窗格中选择“SFS Turbo”。 在文件系统列表中,单击创建资源中创建的HPC型文件系统,进入文件系统详情页面。 进入页签“绑定后端存储”,单击“绑定OBS桶”。 图1 绑定OBS桶 在右侧弹窗“绑定OBS目标”中,填写如下表所示参数。 表1 绑定OBS目标配置参数 参数 含义 限制 配置后可编辑 路径名称 SFS Turbo文件系统根目录下会以该名称创建一个子目录,该目录将绑定对应的OBS桶 子目录名称不能重复 子目录名称必须是文件系统根目录下不存在的目录名 子目录名称不能是“.”或“..” 不支持 桶名 OBS存储桶桶名 无法绑定不存在的存储桶 目前仅支持OBS存储桶,不支持并行文件系统 不支持 OBS Endpoint OBS区域域名 OBS存储桶必须和HPC型文件系统在同一个Region 不支持 勾选“将OBS桶读写权限授权给SFS Turbo服务进行OBS目标绑定”。 单击“确定”,完成绑定。 父主题: 基本配置
  • 示例 某用户创建一个SFS容量型文件系统A,文件系统使用的是VPC-B,网段为10.0.0.0/16。此前该用户拥有一个使用VPC-C网段为192.168.10.0/24的弹性云服务器D,私有IP地址为192.168.10.11。如果该用户需要将文件系统A挂载至弹性云服务器D上进行读写操作,需要将VPC-C添加至文件系统A的VPC列表中,并将弹性云服务器D的私有IP地址或所在的地址段添加至VPC-C的授权地址中,读或写权限设置为读写即可。 该用户同时新购买一个使用VPC-C网段为192.168.10.0/24的弹性云服务器F,私有IP地址为192.168.10.22。如果该用户希望此服务器只有读权限,且读优先级比弹性云服务器D低,需要将私有IP地址加入到VPC-C的授权地址中,读或写权限设置为只读,优先级填入大于弹性云服务器D的0-100的正整数即可。