云服务器内容精选

  • GET _frozen_stats/obs_rate接口 计算方式:每5秒计算一次,查询前5秒内的平均OBS操作速率。 请求示例: GET _frozen_stats/obs_rate GET _frozen_stats/obs_rate/{nodeId} “{nodeId}”为需要查询OBS操作速率的节点ID。 响应示例: { "_nodes" : { "total" : 1, "successful" : 1, "failed" : 0 }, "cluster_name" : "elasticsearch", "nodes" : { "dflDvcSwTJ-fkiIlT2zE3A" : { "name" : "node-1", "transport_address" : "127.0.0.1:9300", "host" : "127.0.0.1", "ip" : "127.0.0.1", "update_time" : 1671777600482, // 当前统计值的更新时间。 "obs_rate" : { "list_op_rate" : 0.0, // obs list操作的速率,单位:次/秒。 "get_meta_op_rate" : 0.0, // obs get meta操作的速率,单位:次/秒。 "get_obj_op_rate" : 0.0, // obs get操作的速率,单位:次/秒。 "put_op_rate" : 0.0, // obs put操作的速率,单位:次/秒。 "obs_total_op_rate" : 0.0, // obs所有操作的速率,单位:次/秒。 "obs_upload_rate" : "0.0 MB/s", // obs上传数据的速率,MB/秒。 "obs_download_rate" : "0.0 MB/s" // obs下载数据的速率,MB/秒。 } } } }
  • 应用场景 随着大数据技术的飞速发展,对数据价值的认识逐渐加深,大数据已经融入到了各行各业。根据相关调查报告数据显示,超过39.6%的企业正在应用大数据并从中获益;超过89.6%的企业已经成立或计划成立相关的大数据分析部门;超过六成的企业在扩大大数据的投入力度。对各行业来讲,大数据的使用能力成为未来取得竞争优势的关键能力之一。 在大数据场景下,数据已成为新资产,智能已成为新生产力。企业迫切需要完成数字化转型,提高生产力,使数据资产发挥最大价值。而传统企业在业务未上云之前,业务部署和数据存储往往都在本地IDC机房的多个集群,且一台服务器同时提供计算和存储能力,这种方式导致的如表1所示的几个关键问题,已成为企业数字化转型的阻碍。 表1 传统企业在大数据场景面临的关键问题 序号 关键问题 详细描述 1 多集群数据共享难 企业数据往往分别存储在IDC多个集群,存在如下问题: 无全局视图,数据只能在集群内部使用。 拷贝是跨集群数据共享的唯一途径,数据拷贝耗时长。 公共数据集多份存储,数据冗余。 2 计算存储资源绑定,导致资源浪费 计算和存储资源无法均衡,当计算和存储需求不一致时,只能等比扩容,势必造成一种资源的浪费。 3 数据三副本存储,利用率低,成本高 Hadoop分布式文件系统(HDFS)使用三副本保存数据,磁盘空间利用率仅33%,单盘利用率低于70%。
  • 方案优势 相比传统企业在本地IDC机房部署大数据业务,华为云数据存算分离方案的主要优势如表2。 表2 华为云大数据存算分离相比传统大数据方案的优势 序号 主要优势 详细描述 1 融合高效,协同分析 通过统一的权限控制,实现多集群间的数据共享。 数据“0”拷贝。 大数据和AI一体化,减少作业耗时。 2 存算分离,资源利用率高 计算存储解耦,支持独立扩容或缩容,计算资源可弹性伸缩,资源利用率提升。 3 数据EC冗余存储,利用率高,成本低 对象存储服务OBS支持利用率最高的分布式数据容错技术Erasure code,磁盘利用率大幅提升,数据存储空间需求远低于三副本。 此外,对象存储服务OBS提供了OBSFileSystem插件(OBSA-HDFS),可与上层大数据平台无缝对接,实现业务零改造。 OBSFileSystem的主要作用:提供HDFS文件系统的相关接口实现,让大数据计算引擎(Hive、Spark等)可以将OBS作为HDFS协议的底层存储。 图2 存算分离方案中的OBSFileSystem OBS服务支持对象存储桶(对象语义)和并行文件系统(POSIX文件语义),在大数据场景下建议选择并行文件系统。并行文件系统支持POSIX文件语义,通过OBSFileSystem封装,相较对象语义增加Rename、Append、hflush/hsync接口,实现完善的HDFS语义,为大数据计算提供了更好的性能。 基于上述优势,华为云存算分离大数据方案相比传统大数据方案,在同样的业务规模下所使用的计算资源、存储资源以及服务器数量都会有明显下降,同时资源利用率也能得到显著提升,可帮助企业降低业务综合成本。
  • MRS存算分离简介 MRS支持在大数据存储容量大、计算资源需要弹性扩展的场景下,用户将数据存储在OBS服务中,使用MRS集群仅作数据计算处理的存算分离模式,从而实现按需灵活扩展资源、低成本的海量数据分析方案。 大数据存算分离场景,请务必使用OBS并行文件系统(并行文件系统),使用普通对象桶会对集群性能产生较大影响。 存算分离功能使用流程: 配置存算分离集群。 请选择如下其中一种配置即可(推荐使用委托方式)。 通过为MRS集群绑定ECS委托方式访问OBS,避免了AK/SK直接暴露在配置文件中的风险,具体请参考配置存算分离集群(委托方式)。 在MRS集群中配置AK/SK,AK/SK会明文暴露在配置文件中,请谨慎使用,具体请参考配置存算分离集群(AKSK方式)。 MRS通过集群内的Guardian组件对接OBS,为其他组件提供获取访问OBS的临时认证凭据、细粒度权限控制的能力,具体请参考配置Guardian服务对接OBS。 目前仅MRS 3.3.0-LTS及之后的版本支持基于Guardian组件对接OBS,其他版本集群请参考MRS集群组件对接OBS(基于委托)相关章节进行配置。 基于Guardian存算分离管理面作业提交依赖JobGateway模式,不支持Executor模式。 使用存算分离集群。 在具备OBS资源的访问权限后,MRS集群内相关组件可通过客户端访问对应文件资源。 各组件访问OBS配置说明可参考如下内容: MRS集群组件对接OBS(基于委托) MRS集群组件对接OBS(基于Guardian) 父主题: 配置存算分离
  • 操作流程 大数据场景下使用OBS实现存算分离的操作流程如图1所示。 图1 操作流程 配置的核心是完成大数据平台与OBS对接,实现OBS作为大数据的统一数据湖存储。本文档提供三种主流大数据平台的对接指导,详情请参见支持的大数据平台简介。 (可选)OBS除了可以与主流大数据平台对接外,还可以直接与开源的大数据组件对接。当您使用开源的大数据组件时,可参考支持的大数据组件简介完成与OBS对接。 (可选)如果您的数据仍存储在本地HDFS,需要先将数据迁移到华为云OBS中。详情请参见迁移HDFS数据至OBS。 父主题: 大数据场景下使用OBS实现存算分离
  • Distcp方式迁移 Hadoop Distcp(Distributed copy)主要是用于Hadoop文件系统内部或之间进行大规模数据复制的工具,它使用Map/Reduce实现文件分发,错误处理和恢复,以及报告生成。它把文件和目录的列表作为map任务的输入,每个任务会完成源列表中部分文件的拷贝。 配置指南 参考Hadoop对接OBS中hadoop-huaweicloud的安装和配置方法,完成OBS相关配置。 使用示例 以迁移HDFS上的“/data/sample”目录为例,执行以下命令查看HDFS文件系统上此目录下的文件与目录。 hadoop fs -ls hdfs:///data/sample 执行以下命令,将HDFS文件系统上“/data/sample”目录下所有文件与目录迁移到OBS桶“obs-bigdata-posix-bucket”的“data/sample”目录下。 hadoop distcp hdfs:///data/sample obs://obs-bigdata-posix-bucket/data/sample 执行以下命令,查看拷贝的文件。 hadoop fs -ls obs://obs-bigdata-posix-bucket/data/sample
  • 处理步骤 以root用户登录集群主Master节点。 修改“${BIGDATA_HOME}/om-server/om/inst/conf/oms-config.ini”和“${BIGDATA_HOME}/om-server/OMS/workspace0/conf/oms-config.ini”配置文件,在“ntp_server_ip”参数值前添加“ntp.myhuaweicloud.com,” ... ntp_server_ip=ntp.myhuaweicloud.com,10.127.1.0 ... 以root用户登录集群备Master节点,执行2。 等待约2分钟,在主Master节点执行以下命令观察IP同步成功。 ntpq -np 例如执行后结果如下:
  • 注意事项 在执行冻结操作前,需冻结的索引没有数据写入。在冻结操作执行前,会将索引配置为read only,会导致写入数据出错。 在执行冻结操作后: 索引变为只读。 索引数据将会转储到OBS,转移过程中,会占用网络带宽。 转储后的索引,查询时延会增加。聚合时,由于查询复杂,数据读取多,时延变长会体现的更明显。 已冻结的索引不支持解冻,即不可回退为可写的索引。 冻结完成以后,会删除本地磁盘中的索引数据。
  • 操作步骤 登录云搜索服务管理控制台。 在“集群管理”页面,选择需要冻结索引的集群,单击操作列“Kibana”,登录Kibana界面。 单击左侧导航栏的“Dev Tools”,进入操作页面。 执行如下命令,将指定索引冻结到OBS中。 POST ${index_name}/_freeze_low_cost 表1 请求参数说明 参数名 说明 index_name 需要冻结的索引的名字。 返回结果如下: { "freeze_uuid": "pdsRgUtSTymVDWR_HoTGFw"} 表2 返回参数说明 参数名 说明 freeze_uuid 提交冻结请求后会启动一个异步任务,请求返回异步任务的ID,使用该ID查询异步任务的进度。 索引冻结请求下发后,会禁止索引的数据写入,冻结过程中,查询请求不受影响。在冻结结束后,会将索引先close再open,在这段时间内,索引不可查询,集群可能短暂出现red状态,open结束后恢复。 执行如下命令获取冻结任务进度。 GET _freeze_low_cost_progress/${freeze_uuid} 表3 请求参数说明 参数名 说明 freeze_uuid 异步任务的ID,该ID由4获取的。 返回结果如下: { "stage" : "STARTED", "shards_stats" : { "INIT" : 0, "FAILURE" : 0, "DONE" : 0, "STARTED" : 3, "ABORTED" : 0 }, "indices" : { "data1" : [ { "uuid" : "7OS-G1-tRke2jHZPlckexg", "index" : { "name" : "data1", "index_id" : "4b5PHXJITLaS6AurImfQ9A", "shard" : 2 }, "start_ms" : 1611972010852, "end_ms" : -1, "total_time" : "10.5s", "total_time_in_millis" : 10505, "stage" : "STARTED", "failure" : null, "size" : { "total_bytes" : 3211446689, "finished_bytes" : 222491269, "percent" : "6.0%" }, "file" : { "total_files" : 271, "finished_files" : 12, "percent" : "4.0%" }, "rate_limit" : { "paused_times" : 1, "paused_nanos" : 946460970 } }, { "uuid" : "7OS-G1-tRke2jHZPlckexg", "index" : { "name" : "data1", "index_id" : "4b5PHXJITLaS6AurImfQ9A", "shard" : 0 }, "start_ms" : 1611972010998, "end_ms" : -1, "total_time" : "10.3s", "total_time_in_millis" : 10359, "stage" : "STARTED", "failure" : null, "size" : { "total_bytes" : 3221418186, "finished_bytes" : 272347118, "percent" : "8.0%" }, "file" : { "total_files" : 372, "finished_files" : 16, "percent" : "4.0%" }, "rate_limit" : { "paused_times" : 5, "paused_nanos" : 8269016764 } }, { "uuid" : "7OS-G1-tRke2jHZPlckexg", "index" : { "name" : "data1", "index_id" : "4b5PHXJITLaS6AurImfQ9A", "shard" : 1 }, "start_ms" : 1611972011021, "end_ms" : -1, "total_time" : "10.3s", "total_time_in_millis" : 10336, "stage" : "STARTED", "failure" : null, "size" : { "total_bytes" : 3220787498, "finished_bytes" : 305789614, "percent" : "9.0%" }, "file" : { "total_files" : 323, "finished_files" : 14, "percent" : "4.0%" }, "rate_limit" : { "paused_times" : 3, "paused_nanos" : 6057933087 } } ] }} 表4 返回参数说明 参数名 说明 stage 当前所处状态。取值包括: INIT:刚启动或者正在初始化。 FAILURE:失败。 DONE:完成。 STARTED:已启动。 ABORTED:取消,预留字段。 shards_stats 处在各个状态的shard个数。 indices 每个索引的状态详情。 表5 indices返回值说明 参数名 说明 uuid freeze的uuid。 index 索引信息和shard信息。 start_ms 开始时间。 end_ms 结束时间,如果没有结束则显示为-1。 total_time 已花费时间。 total_time_in_millis 已花费时间毫秒数。 stage 当前shard所处的状态。 failure 失败原因,如果没有失败则显示为null。 size.total_bytes 总共需要冻结的文件的字节数。 size.finished_bytes 已经完成冻结的字节数。 size.percent 已经完成冻结的字节数百分比。 file.total_bytes 总共需要冻结的文件个数。 file.finished_bytes 已经完成冻结的文件个数。 file.percent 已经完成冻结的文件个数百分比。 rate_limit.paused_times 达到限速导致冻结暂停的次数。 rate_limit.paused_nanos 达到限速导致冻结暂停的时间纳秒数。 冻结完成的索引会增加以下settings,可参考表6。 表6 冻结索引settings 参数 说明 index.frozen_low_cost 标识该索引为冻结索引。取值为true。 index.blocks.write 冻结后的索引禁止写入。取值为true。 index.store.type 标识该索引的存储类型为obs。取值为obs。 索引冻结后,会将数据进行缓存。执行如下命令获取当前缓存状态。关于缓存详见配置缓存。 GET _frozen_statsGET _frozen_stats/${node_id} 表7 请求参数说明 参数名 说明 node_id 获取单个节点的缓存状态,此参数为需要获取的节点id。 返回结果如下: { "_nodes" : { "total" : 3, "successful" : 3, "failed" : 0 }, "cluster_name" : "css-zzz1", "nodes" : { "7uwKO38RRoaON37YsXhCYw" : { "name" : "css-zzz1-ess-esn-2-1", "transport_address" : "10.0.0.247:9300", "host" : "10.0.0.247", "ip" : "10.0.0.247", "block_cache" : { "default" : { "type" : "memory", "block_cache_capacity" : 8192, "block_cache_blocksize" : 8192, "block_cache_size" : 12, "block_cache_hit" : 14, "block_cache_miss" : 0, "block_cache_eviction" : 0, "block_cache_store_fail" : 0 } }, "obs_stats" : { "list" : { "obs_list_count" : 17, "obs_list_ms" : 265, "obs_list_avg_ms" : 15 }, "get_meta" : { "obs_get_meta_count" : 79, "obs_get_meta_ms" : 183, "obs_get_meta_avg_ms" : 2 }, "get_obj" : { "obs_get_obj_count" : 12, "obs_get_obj_ms" : 123, "obs_get_obj_avg_ms" : 10 }, "put_obj" : { "obs_put_obj_count" : 12, "obs_put_obj_ms" : 2451, "obs_put_obj_avg_ms" : 204 }, "obs_op_total" : { "obs_op_total_ms" : 3022, "obs_op_total_count" : 120, "obs_op_avg_ms" : 25 } }, "reader_cache" : { "hit_count" : 0, "miss_count" : 1, "load_success_count" : 1, "load_exception_count" : 0, "total_load_time" : 291194714, "eviction_count" : 0 } }, "73EDpEqoQES749umJqxOzQ" : { "name" : "css-zzz1-ess-esn-3-1", "transport_address" : "10.0.0.201:9300", "host" : "10.0.0.201", "ip" : "10.0.0.201", "block_cache" : { "default" : { "type" : "memory", "block_cache_capacity" : 8192, "block_cache_blocksize" : 8192, "block_cache_size" : 12, "block_cache_hit" : 14, "block_cache_miss" : 0, "block_cache_eviction" : 0, "block_cache_store_fail" : 0 } }, "obs_stats" : { "list" : { "obs_list_count" : 17, "obs_list_ms" : 309, "obs_list_avg_ms" : 18 }, "get_meta" : { "obs_get_meta_count" : 79, "obs_get_meta_ms" : 216, "obs_get_meta_avg_ms" : 2 }, "get_obj" : { "obs_get_obj_count" : 12, "obs_get_obj_ms" : 140, "obs_get_obj_avg_ms" : 11 }, "put_obj" : { "obs_put_obj_count" : 12, "obs_put_obj_ms" : 1081, "obs_put_obj_avg_ms" : 90 }, "obs_op_total" : { "obs_op_total_ms" : 1746, "obs_op_total_count" : 120, "obs_op_avg_ms" : 14 } }, "reader_cache" : { "hit_count" : 0, "miss_count" : 1, "load_success_count" : 1, "load_exception_count" : 0, "total_load_time" : 367179751, "eviction_count" : 0 } }, "EF8WoLCUQbqJl1Pkqo9-OA" : { "name" : "css-zzz1-ess-esn-1-1", "transport_address" : "10.0.0.18:9300", "host" : "10.0.0.18", "ip" : "10.0.0.18", "block_cache" : { "default" : { "type" : "memory", "block_cache_capacity" : 8192, "block_cache_blocksize" : 8192, "block_cache_size" : 12, "block_cache_hit" : 14, "block_cache_miss" : 0, "block_cache_eviction" : 0, "block_cache_store_fail" : 0 } }, "obs_stats" : { "list" : { "obs_list_count" : 17, "obs_list_ms" : 220, "obs_list_avg_ms" : 12 }, "get_meta" : { "obs_get_meta_count" : 79, "obs_get_meta_ms" : 139, "obs_get_meta_avg_ms" : 1 }, "get_obj" : { "obs_get_obj_count" : 12, "obs_get_obj_ms" : 82, "obs_get_obj_avg_ms" : 6 }, "put_obj" : { "obs_put_obj_count" : 12, "obs_put_obj_ms" : 879, "obs_put_obj_avg_ms" : 73 }, "obs_op_total" : { "obs_op_total_ms" : 1320, "obs_op_total_count" : 120, "obs_op_avg_ms" : 11 } }, "reader_cache" : { "hit_count" : 0, "miss_count" : 1, "load_success_count" : 1, "load_exception_count" : 0, "total_load_time" : 235706838, "eviction_count" : 0 } } }} 执行如下命令重置缓存状态。 POST _frozen_stats/reset 返回结果如下: { "_nodes" : { "total" : 1, "successful" : 1, "failed" : 0 }, "cluster_name" : "Es-0325-007_01", "nodes" : { "mqTdk2YRSPyOSXfesREFSg" : { "result" : "ok" } }} 此命令用于性能问题的调试,如重置缓存状态后再次执行查询,可以清晰看到本次查询的缓存命令情况。在业务运行阶段不需要执行此命令。 执行如下命令获取当前已经冻结的所有索引。 GET _cat/freeze_indices 返回结果如下: green open data2 0bNtxWDtRbOSkS4JYaUgMQ 3 0 5 0 7.9kb 7.9kbgreen open data3 oYMLvw31QnyasqUNuyP6RA 3 0 51 0 23.5kb 23.5kb 此命令的参数和返回值与开源ES的_cat/indices一致。