华为云用户手册

  • 验证集群间的网络连通性 在启动迁移任务前,需要先验证Logstash和源Elasticsearch集群的网络连通性。 在Logstash集群列表,选择创建的Logstash集群“Logstash-ES”,单击操作列的“配置中心”,进入配置中心页面。 在配置中心页面,单击“连通性测试”。 在弹窗中输入源集群的IP地址和端口号,单击“测试”。 图4 连通性测试 当显示“可用”时,表示集群间网络连通。如果网络不连通,可以配置Logstash集群路由,连通集群间的网络,具体操作请参见配置Logstash集群路由。
  • 方案架构 图1 迁移流程 通过华为云Logstash实现Elasticsearch集群间数据迁移的迁移流程如图1所示。 输入(Input):华为云Logstash接收来自华为云Elasticsearch、自建Elasticsearch或第三方Elasticsearch的数据。 华为云Elasticsearch、自建Elasticsearch或第三方Elasticsearch数据迁移到华为云Elasticsearch的操作步骤相同,只是获取源集群的访问地址有差异,具体请参见获取Elasticsearch集群信息。 过滤(Filter):华为云Logstash对数据进行清洗和转换。 输出(Output):华为云Logstash将数据输出到目标设备,如华为云Elasticsearch。 根据业务需求,可以选择全量数据迁移或增量数据迁移。 全量数据迁移:使用Logstash进行全量数据迁移,适用于迁移初期或需要确保数据完整性的场景。 增量数据迁移:通过Logstash配置增量查询,可以只迁移有增量字段的索引数据。此方法适用于需要持续同步数据或对数据实时性有较高要求的场景。
  • 方案优势 高版本兼容性:适用于不同版本的Elasticsearch集群迁移。 高效的数据处理能力:Logstash支持批量读写操作,可以大幅度提高数据迁移的效率。 并发同步技术:利用slice并发同步技术,可以提高数据迁移的速度和性能,尤其是在处理大规模数据时。 配置简单:华为云Logstash的配置相对简单直观,通过配置文件即可实现数据的输入、处理和输出。 强大的数据处理功能:Logstash内置了丰富的过滤器,可以在迁移过程中对数据进行清洗、转换和丰富。 灵活的迁移策略:根据业务需求,可以灵活选择全量迁移或增量迁移,优化存储使用和迁移时间。
  • 查询性能优化 基于Elasticsearch的数据查询流程分析,有以下几种性能优化方案。 表1 查询性能优化 优化方案 方案说明 通过routing减少检索扫描的分片数 在数据入库时指定routing值,将数据路由到某个特定的分片,查询时通过该routing值将请求转发到某个特定的分片,而不是相关索引的所有分片,进而提升集群整体的吞吐能力。 Elasticsearch 7.x版本中,设置命令如下: 指定routing值插入数据 PUT /{index}/_doc/1?routing=user1{ "title": "This is a document"} 根据routing值去查询数据 GET /{index}/_doc/1?routing=user1 采用index sorting减少检索扫描的Segments数 当请求落到某个分片时,会逐个遍历其Segments,通过使用index sorting,可以使得范围查询、或者排序查询在段内提前终止(early-terminate)。 Elasticsearch 7.x版本中,示例命令如下: //假设需要频繁使用字段date做范围查询。PUT {index}{ "settings": { "index": { "sort.field": "date", "sort.order": "desc" } }, "mappings": { "properties": { "date": { "type": "date" } } }} 增加query cache提升缓存命中的概率 当filter请求在段内执行时,会通过bitset保留其刷选结果,当下一个类似的查询过来时,就可以复用之前查询的结果,以此减少重复查询。 增加query cache可以通过修改集群的参数配置实现,将自定义缓存参数“indices.queries.cache.size”设置为更大的值。具体操作请参见参数配置,修改参数配置后一定要重启集群使参数生效。 提前Forcemerge,减小需要扫描的Segments数 对于定期滚动后的只读索引,可以定期执行forcemerge,将小的Segments合并为大的Segments,并将标记为“deleted”状态的索引彻底删除,提升查询效率。 Elasticsearch 7.x版本中,配置示例如下: //假设配置索引forcemerge后segments数量为10个。POST /{index}/_forcemerge?max_num_segments=10
  • 数据查询流程 图1 数据查询流程 如图1所示,以Elasticsearch集群为例,介绍客户端往Elasticsearch或OpenSearch集群发送查询请求的流程。图中的P表示主分片Primary,R表示副本分片Replica,主副分片在数据节点Node里是随机分配的,但是不能在同一个节点里。 客户端向Node1发送查询请求,此时Node1为协调节点。 节点Node1根据查询请求的索引以及其分片分布,进行分片选择;然后将请求转发到Node1、Node2、Node3。 各分片分别执行查询任务;当各分片查询成功后,将查询结果汇聚到Node1,然后协调节点向客户端返回查询结果。 对于某个查询请求,其在节点上默认可并行查询5个分片,多于5个分片时将分批进行查询;在单个分片内,通过逐个遍历各个Segment的方式进行查询。 图2 Elasticsearch的索引组成
  • 前提条件 源Elasticsearch集群和目标Elasticsearch集群处于可用状态。 集群间需要保证网络连通。 如果源集群和目标集群在不同VPC,则需要先打通VPC网络建立对等连接。具体操作请参见对等连接简介。 如果是自建Elasticsearch集群迁移至华为云,则可以通过给自建Elasticsearch集群配置公网访问打通网络。 如果是第三方Elasticsearch集群迁移至华为云,则需要建立企业内部数据中心到华为云的VPN通道或专线。 确认集群的索引已开启“_source”。 集群索引的“_source”默认是开启的。执行命令GET {index}/_search,当返回的索引信息里有“_source”信息时表示已开启。
  • 应用场景 Elasticsearch作为一款开源搜索引擎,提供了Reindex API以支持集群间的索引数据迁移。 CSS 服务同样支持利用Reindex API实现Elasticsearch集群间的数据迁移。以下是该方案适用的专业迁移场景概述: 集群合并:Reindex API能够将分散在多个Elasticsearch集群中的索引数据合并至单一集群,实现数据的集中管理和分析。 服务迁移上云:企业可以将自建的Elasticsearch服务迁移至云平台,以利用云服务的弹性扩展、简化维护和成本效益。 变更服务提供商:对于当前使用第三方Elasticsearch服务的企业,若出于成本、性能或其他战略考量,希望更换至华为云等其他服务提供商,Reindex API提供了一种迁移途径。 Reindex API支持以下迁移策略: 全量迁移:实现跨集群的完整索引数据迁移。在此过程中,必须暂停对源集群的写入操作,以确保源集群与目标集群数据的一致性。 增量迁移:当集群索引包含时间字段时,Reindex API支持基于时间戳的增量数据迁移。在业务切换阶段,全量迁移完成后,需暂停源集群的写入操作,并利用Reindex API基于最近更新时间快速同步增量数据,随后将业务全面切换至目标集群。 索引重构:当需要调整索引结构,如Mapping、分词器或分片设置时,Reindex API可用于在迁移过程中重新配置索引结构。
  • 性能影响 Reindex API的工作原理基于Scroll API,此API能够高效地从源集群查找索引数据,并批量同步至目标集群。这一过程可能会对源集群性能产生影响,具体影响程度取决于目标集群对源集群的读取速度,而读取速度取决于Scroll API的size和slice参数配置。参数配置的详细指导可参考Reindex API文档。 由于Reindex任务在Elasticsearch集群中作为异步任务执行,在低并发情况下对源集群性能的影响是可管理的。然而,对于资源占用较高的集群,建议通过调整Scroll API的size参数来减缓迁移速度,或选择在业务低峰期进行迁移,以降低对业务的影响。
  • 常见问题:当索引数据大、数据同步慢时,如何处理? 当索引数据大、数据同步慢时,有如下几种方案可以提高效率。 Reindex API是使用Scroll方式读取源端数据写入目标端,因此可以通过配置size和slice参数增加迁移并发和速度。具体使用指导请参见Reindex API。 当单个索引数据量比较大时,可以在迁移前将目标索引的副本数设置为0,以加快数据同步速度。待数据迁移完成后,再修改为实际值。 当源端数据量很大时,建议采用快照方式迁移数据。例如通过备份与恢复实现华为云Elasticsearch集群间数据迁移、通过S3插件备份与恢复迁移自建Elasticsearch集群至华为云和通过备份与恢复迁移第三方Elasticsearch集群至华为云。 当索引数据存在时间字段时,可以使用跨集群增量迁移方案,分段迁移索引数据。
  • SQL审核 SQL审核功能能够帮助用户在开发阶段发现隐藏在代码中的SQL规范性、设计合理性和性能等问题,内置300多条审核规则,覆盖DML、DDL、PL/SQL等各类SQL的深度审核,且支持规则内风险级别、阈值及建议内容的调整,和规则间的自由组合创建定制化审核模板。支持 GaussDB 、MySQL和PostgreSQL三种数据库的审核,可通过单语句、批量代码文件上传(自动提取SQL)、直连数据库,共3种方式接入SQL进行审核,深度看护代码,避免烂SQL流入生产环境。 步骤一:创建数据源 步骤二:创建规则模板 步骤三:创建审核任务
  • 支持审计日志的操作 表1 云审计 服务支持CodeArts Check服务操作 操作名称 资源类型 事件名称 创建代码检查任务 task create 修改代码检查任务 task modify 删除代码检查任务 task delete 执行代码检查任务 job create 取消执行代码检查任务 job modify_job 关注代码检查任务 followingTask create_followingTask 取消关注代码检查任务 followingTask delete_followingTask 修改规则集信息 ruleset modify_ruleset 修改规则集的规则 ruleset modify_ruleset 删除规则集 ruleset delete_ruleset 配置默认规则集 ruleset set_default_ruleset 导出规则集表格 ruleset export_ruleset 导出问题表格 defectExcel export_defectExcel 下载问题表格 defectExcel downloadAndExport_defectExcel 修改问题状态 issueStatus update_issueStatus 修改问题责任人 issueOwner update_issueOwner 修改问题评论 issueComment update_issueComment
  • CodeArts Check插件检查功能介绍 扫描检查单文件、多文件、整个项目并查看扫描结果 单文件扫描检查:在当前打开的文件代码编辑区,单击鼠标右键,选择“CodeArts Check文件检查”。或者在项目的资源管理器界面里,鼠标移动到需要扫描的文件,单击鼠标右键,选择“CodeArts Check文件检查”。 多文件扫描检查:在项目的资源管理器里,按住Ctrl键,鼠标左键选择需要扫描的几个文件,单击鼠标右键,选择“CodeArts Check文件检查”。 整个项目扫描检查:在当前打开的文件代码编辑区,单击鼠标右键,选择“CodeArts Check项目检查”。或者在项目的资源管理器界面里,单击鼠标右键,选择“CodeArts Check项目检查”。 告警帮助提供告警详细描述、严重级别、告警类型、正确示例、错误示例及修复建议,您可以根据”严重程度/文件分类/规则分类”筛选查看告警。 按文件分类查看:打开CodeArts Check窗口,选择“Defects”页签,在检查结果区域左侧工具栏,单击(分类),选择“按文件分类进行查看”。 按严重级别后告警类型查看:打开CodeArts Check窗口,选择“Defects”页签,在检查结果区域左侧工具栏,单击,根据需要选择显示问题的类别。 根据告警指导修改后,插件将实时自动检查,自动更新告警信息 用户根据插件告警指导修改后,插件将实时自动进行检查,自动更新告警信息。
  • 配置CodeArts Check插件 编辑器下方切换到“CodeArts Check”窗口,在底部工具栏单击“Setting”,弹出配置窗口。 单击配置窗口中“规则”左侧的图标可以查看规则详细信息。 根据实际需要确定勾选是否自动触发代码检查,然后输入检查的屏蔽目录和指定的扫描目录。 可以查看当前被激活/应用到的规则(包括状态、危险级别、编程语言、引擎标签、规则类型)或者根据规则集筛选规则(所有规则集/推荐规则集)。 配置后,单击“应用”。
  • CodeArts Check一键格式化及自动修复功能介绍 一键格式化:支持对单文件/多文件/文件夹/整个项目进行一键格式化。一键格式化可帮助您自动解决项目里基础的代码规范问题,如:多余的空格或空行。操作方法如下: 在当前打开的文件代码编辑区或在项目的资源管理器界面里,单击鼠标右键,选择“CodeArts Check一键格式化”。 自动修复:针对插件扫描出来的单个问题,插件提供建议如何修复的预览界面及自动修复。
  • 登录IntelliJ IDEA版本插件(可选) 分为两种登录方式。 方式一:通过华为云账号直接登录或 CS DN账号授权登录CodeArts Check IDE插件。 方式二:通过华为云账号的AK/SK登录。 获取华为云账号的AK/SK。 登录华为云访问密钥界面。 单击“新增访问密钥”,在弹出的窗口中根据实际需要填写描述信息。 单击“确定”,弹出“身份验证”窗口,通过手机的验证方式进行身份验证。 输入验证码后单击“确定”,会弹出窗口提示“创建成功”,单击“立即下载”按钮。 打开下载的“.csv”文件,查看User Name/Access Key/Secret Key信息。 IDEA IDE编辑器右下角提示“Huawei Cloud ToolKit:Login Failed”。 单击“Set your AK/SK”,打开华为云ToolKit的登录界面窗,输入1中获取华为云账号的AK/SK。 需要勾选“Remember me”。 单击“Apply”,在弹出的窗口中单击“同意并继续使用”。 IDEA IDE右下角会有登录的用户名提示信息,表示已经登录成功。
  • 获取驱动包 根据不同版本的实例,下载不同版本的发布包,如表4所示。 表4 驱动包下载列表 版本 下载地址 V2.0-8.x 驱动包 驱动包校验包 V2.0-3.x 驱动包 驱动包校验包 V2.0-2.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK
  • 步骤二:配置规则 您可以直接配置审计与防护策略,也可以根据审计日志的风险点设置审计与防护策略。策略配置完成后,开启对应策略,将对应用数据资产开启针对性的防护与审计。 配置白名单,请参见创建白名单。 配置访问控制规则,请参见访问控制。 配置风险防护规则,请参见添加自定义规则和启用内置规则。 配置内容替换规则,请参见添加内容替换规则。 配置脱敏规则,请参见添加脱敏规则。 配置水印规则,请参见添加水印规则。 在告警或检索页面配置策略,请参见告警页面配置策略和检索页面配置策略。
  • 应用场景 敏感数据识别 OBS中存储了大量的数据与文件,但无法准确获知这些OBS数据中是否包含敏感信息以及敏感数据所在的位置。 您可以使用DSC内置算法规则,或根据其行业特点自定义规则,对其存储在OBS中的数据进行整体扫描、分类、分级,并根据结果做进一步的安全防护,如利用OBS的访问控制和加密功能等。 异常检测和审计 DSC可检测敏感数据相关的访问、操作、管理等异常,并提供告警提示信息,用户可以对异常事件进行确认和处理。通常情况下,以下行为均被视为异常事件: 非法用户在未经授权的情况下对敏感数据进行了访问、下载。 合法用户对敏感数据进行了访问、下载、修改、权限更改、权限删除。 合法用户对敏感数据的桶进行权限更改、权限删除。 访问敏感数据的用户登录终端异常等情况。
  • 背景信息 敏感数据主要包括个人隐私信息、密码、密钥、敏感图片等高价值数据,这些数据通常会以不同的格式存储在您的OBS桶中,一旦发生泄漏,会给企业带来重大的经济和名誉损失。 DSC在您完成数据源识别授权后,从您存储在OBS的海量数据中快速发现和定位敏感数据,对敏感数据分类分级并统一展示,同时追踪敏感数据的使用情况,并根据预先定义的安全策略,对数据进行保护和审计,以便您随时了解OBS数据资产的安全状态。
  • 如何分析大模型输出错误回答的根因 大模型的输出过程通常是一个黑盒,涉及数以亿计甚至千亿计的参数计算,虽然这些参数共同作用生成输出,但具体的决策机制并不透明。 可以通过在提示词中引导模型输出思考过程,或者在模型输出后追问模型,帮助我们分析错误的根因。例如: “我注意到你犯了xxx的错误,请解释得出该结论的原因。” 通过模型的解释,我们可以推测错误的原因,并在提示词中进行相应的调整,从而规避类似错误。 父主题: 提示词工程类
  • 如何利用提示词提高大模型在难度较高推理任务中的准确率 可以通过思维链的方式提高大模型在复杂推理任务中的准确率。 思维链是一种通过分步骤推理来提升大模型在复杂任务中表现的方法。通过引导模型思考问题的过程,可以使其在推理任务中得到更高的准确性,尤其是在涉及多步推理和复杂逻辑关系的任务中。 具体做法如下: 提供相关示例:在提示词中加入类似的示例,帮助模型学习解题的模式和思路。通过这些示例,模型能够理解如何通过不同的推理步骤逐渐得出结论。 例如,在数学问题中,可以通过展示从问题解析到公式应用再到最终解答的完整过程,帮助模型理解问题解决的逻辑。 引导模型分析:如果没有直接的示例或现有示例不适用,可以引导模型首先进行“详细分析”,然后再给出答案。这意味着在提示词中明确要求模型逐步分析问题的各个方面,帮助模型消耗更多的计算资源进行全面推理。这样,模型能够在多个推理步骤后得出更准确的结论,而不是直接跳到最终答案,减少了过度简化或跳跃推理的可能性。 分步推理与反馈:通过分步推理,模型能够在每个步骤后检查和修正自己的思考过程。 例如,在给定一个复杂的逻辑推理问题时,可以要求模型每完成一小步推理,就提供中间结论和推理过程。这样,模型不仅能增加解题的准确性,还能增强理解和自我校正的能力。 通过在提示词中采用思维链的方式,提供相关示例或引导模型逐步分析问题,可以有效提高大模型在复杂推理任务中的准确性。这种方法不仅帮助模型更好地理解问题,还能增强模型的推理能力,特别是在处理需要多步推理的任务时。 父主题: 提示词工程类
  • 为什么其他大模型适用的提示词在盘古大模型上效果不佳 提示词与训练数据的相似度关系。 提示词的效果通常与训练数据的相似度密切相关。当提示词的内容与模型在训练过程中接触过的样本数据相似时,模型更容易理解提示词并生成相关的输出。这是因为模型通过学习大量的训练数据,逐渐建立起对特定模式、结构和语言的理解,因此,提示词中包含的关键词、句式和语境如果与训练数据中的模式接近,模型能够“回忆”并运用已学习的知识和指令。 不同模型间效果差异。 由于不同厂商采用的训练策略和数据集差异,同一提示词在不同模型上的效果可能大不相同。由于不同厂商采用的训练策略和数据集差异,同一提示词在不同模型上的效果可能大不相同。例如,某些模型可能在处理特定领域的数据时表现得更好,而另一些模型则可能在更广泛的任务上更为出色。 根据盘古大模型特点调整提示词。 直接使用在其他大模型上有效的提示词,可能无法在盘古大模型上获得相同的效果。为了充分发挥盘古大模型的潜力,建议根据盘古大模型的特点,单独调整提示词。直接使用在其他大模型上有效的提示词,可能无法在盘古大模型上获得相同的效果。为了充分发挥盘古大模型的潜力,建议根据盘古大模型的特点,单独调整提示词。 父主题: 提示词工程类
  • 如何判断任务场景应通过调整提示词还是场景微调解决 在选择是否通过调整提示词或场景微调来解决任务时,需要从以下两个主要方面进行考虑: 业务数据的可获取性 考虑该任务场景的业务数据是否公开可获取。如果该场景的相关数据可以公开获取,说明模型在训练阶段可能已经接触过类似的语料,因此具有一定的理解能力。这时,通过调整提示词通常可以有效引导模型生成合理的回答。 例如,对于一些常见的问答场景(如常见百科问题),由于这些领域的相关数据广泛存在,模型通常能够较好地理解并生成准确回答。在这种情况下,通过调整提示词来引导模型的生成风格和细节,通常可以达到较好的效果。 业务逻辑的复杂性 判断任务场景的业务逻辑是否符合通用逻辑。如果场景中的业务逻辑较为简单、通用且易于理解,那么调整提示词是一个可行的方案。 例如,对于一般的常规问题解答等场景,可以通过在提示词中引导模型学习如何简洁明了地作答。 如果场景涉及较为复杂、专业的业务逻辑(例如金融分析、医疗诊断等),则需要更为精确的处理方式: 如果该场景的业务规则较少且易于概括,可以尝试使用few-shot方式,通过向模型提供少量示例来让其理解任务并进行推理。 如果业务规则复杂且难以归纳,建议使用场景微调的方式,针对该特定场景进行模型训练,以便模型能够更深入地理解和适应这些复杂规则。 父主题: 提示词工程类
  • 如何让大模型按指定风格或格式回复 要让模型按照特定风格回复,可以提供领域和角色信息(如目标受众或特定场景),帮助模型理解并捕捉预期风格。 可以在提示词中,明确描述回复风格的要求。例如,若希望模型回答更精炼,可以提示: 你的回复“需要简洁精炼”、“仅包括最重要的信息”或“专注于主要结论”。 若希望模型输出遵循特定格式,可以在提示词中明确格式要求,或使用占位符和模板结构,让模型填充内容。例如: 请按照以下格式输出:判断原因:xxx最终结论:xxx 父主题: 提示词工程类
  • 原因分析 DataNode节点内写block磁盘时,有两种策略“轮询”和“优先写剩余磁盘空间多的磁盘”,默认是“轮询”。 参数说明:dfs.datanode.fsdataset.volume.choosing.policy 可选值: 轮询:org.apache.hadoop.hdfs.server.datanode.fsdataset.RoundRobinVolumeChoosingPolicy 优先写剩余空间多的磁盘: org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy
  • 解决办法 认证异常。 登录客户端节点,进入客户端目录。 执行以下命令重新提交任务。(业务jar包和Topology根据实际情况替换) source bigdata_env kinit 用户名 storm jar storm-starter-topologies-0.10.0.jar storm.starter.WordCountTopology test 拓扑包异常。 排查业务jar,将业务jar中storm.yaml文件删除,重新提交任务。
  • 问题背景与现象 Consumer来消费Kafka中指定Topic的消息时,发现无法从Kafka中获取到数据。 提示如下错误: org.apache.kafka.common.protocol.types.SchemaException: Error reading field 'brokers': Error reading field 'host': Error reading string of length 28271, only 593 bytes available
  • 原因分析 查看客户端或者NameNode运行日志“/var/log/Bigdata/hdfs/nn/hadoop-omm-namenode-XXX.log”存在异常提示The directory item limit of /tmp is exceeded:。该错误的含义为/tmp目录的文件数超过1048576的限制。 2018-03-14 11:18:21,625 | WARN | IPC Server handler 62 on 25000 | DIR* NameSystem.startFile: /tmp/test.txt The directory item limit of /tmp is exceeded: limit=1048576 items=1048577 | FSNamesystem.java:2334 该限制是dfs.namenode.fs-limits.max-directory-items参数,定义单个目录下不含递归的最大目录数或者文件数,默认值1048576,取值范围1~6400000。
  • 问题背景与现象 单个节点内DataNode的各磁盘使用率不均匀。 例如: 189-39-235-71:~ # df -hFilesystem Size Used Avail Use% Mounted on/dev/xvda 360G 92G 250G 28% //dev/xvdb 700G 900G 200G 78% /srv/BigData/hadoop/data1/dev/xvdc 700G 900G 200G 78% /srv/BigData/hadoop/data2/dev/xvdd 700G 900G 200G 78% /srv/BigData/hadoop/data3/dev/xvde 700G 900G 200G 78% /srv/BigData/hadoop/data4/dev/xvdf 10G 900G 890G 2% /srv/BigData/hadoop/data5189-39-235-71:~ #
  • 解决办法 将DataNode选择磁盘策略的参数dfs.datanode.fsdataset.volume.choosing.policy的值改为:org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy,保存并重启受影响的服务或实例。 让DataNode根据磁盘剩余空间大小,优先选择磁盘剩余空间多的节点存储数据副本。 针对新写入到本DataNode的数据会优先写磁盘剩余空间多的磁盘。 部分磁盘使用率较高,依赖业务逐渐删除在HDFS中的数据(老化数据)来逐渐降低。
共100000条