云服务器内容精选

  • 关于磁盘缓存 DWS会把经常访问的数据缓存到EVS本地磁盘,以减少OBS直读次数,加速查询性能。磁盘缓存只在DN计算节点上存在,协调节点CN上不存在。 缓存大小 集群默认的缓存大小(disk_cache_max_size)配置为:EVS容量的1/3。 EVS容量默认划分是:1/3 * 2(副本)存储本地持久化的数据(如:列存索引,行存表,本地列存表),另外1/3给缓存用。DWS的索引不同于Redshift,Redshift索引只是一个优化器提示,没有实体的索引数据,DWS的索引类似Oracle,会实际存储索引数据。 如果列存表没有创建索引,则可适当调大缓存的大小,即通过DWS管理控制台调大disk_cache_max_size。 缓存状态 用户查询数据时,会优先到Disk Cache中查看数据是否已存在于本地磁盘,如果不存在则再去OBS读取数据,同时将数据缓存到本地磁盘,下次再读取这段数据时,即可在本地磁盘中读取到。使用Disk Cache可显著提升OBS数据的查询速度。 Disk Cache会默认使用主备两块硬盘作为缓存介质,通过查询以下参数查看相关信息: 通过disk_cache_base_paths参数查看和增减缓存硬盘路径。 通过disk_cache_max_size参数来查看及调节Disk Cache的大小。 通过查询视图pgxc_disk_cache_all_stats可以查看当前缓存的命中率以及各个DN磁盘的使用大小情况: 图2 pgxc_disk_cache_all_stats查询结果 缓存双写 开启缓存双写可以提升首次查询数据的性能,即用户在写数据到远端OBS的同时,将数据也写到本地Disk Cache上。当第一次读取数据时,可显著提升读取效率。用户可通过disk_cache_dual_write_option来设置是否开启缓存双写,参数包含三个设置选项: none:表示不开启缓存双写。 hstore_only(默认值):表示只对hstore opt表,在delta merge时才开启缓存双写。 all:表示对普通v3表和hstore opt表都开启缓存双写。 缓存清理 通过函数pgxc_clear_disk_cache()可以将所有的Disk Cache清空。
  • 集群购买 EVS磁盘空间 9.1.0.x版本只是实现了将列存用户数据存储到OBS上,其它数据仍然保存在本地盘。因此,即使在存算分离架构下,也并不意味着不需要额外配置EVS磁盘或者只需要配置一个很小的磁盘,后续版本存算分离能力将会持续演进。 表1 表类型的存储说明 表类型 存储位置 适用场景 行存表/临时表/列存索引 本地,无压缩 点查、实时小批量入库、频繁更新。 列存表2.0 本地,有压缩 批量入库、查询、实时小批量入库、点查、更新。 列存表3.0 OBS,有压缩 批量入库、查询、低频批量更新。 EVS存储内容:行存、列存元数据(min/max)、 索引、Delta、WAL、OBS数据缓存、计算中的临时下盘文件(sort/hash),购买DWS集群时可指定大小。 EVS存储总大小购买计算公式: ( 2副本 *(行存表大小 + 索引大小 + Delta表大小) + OBS热数据缓存大小) / 0.8(预留) 当EVS存储总大小超过90%时会触发集群只读,预留的10%空间保存WAL和临时文件下盘。 OBS热数据:1. 明确知道热数据的大小;2. 如果不知道,可以选择OBS总数据量 *30%。 列存索引大小 = 原始未压缩数据size * 索引列宽 * 3(膨胀) / 总列宽 列存数据按照3倍压缩比评估,假设20列的表,2列做主键,索引就是压缩前数据的30%,和压缩后数据相当。 Delta大小:一个表(或者一个分区) Max(10GB, 压缩后表大小 / 10) 行存索引按照30%评估。 EVS磁盘空间推荐:如果按以上算法估算,实际操作比较麻烦,建议:EVS磁盘空间总大小设置为压缩后的总数据量大小(压缩比一般按5倍计算),如果表上没有索引(EVS主要做缓存使用),EVS磁盘空间总大小可以设置为总数据量(可以排除掉归档数据的大小)大小的50%或者30%,并调大磁盘缓存的大小(见下文)。 最小容量: 性能客户:保证每个DN主备各挂载的磁盘容量最少要500G(以达到每块盘350MB/s的带宽),比如一个E CS 上部署了2主2备,该机器要至少挂载 4 * 500G 磁盘容量。 成本敏感客户:每个DN主备各挂载最小200G(每块盘带宽160MB/s)。 OBS配置 OBS要求3AZ部署并支持并行文件系统。 OBS性能: 如需调整OBS性能指标,请联系技术支持。公有云场景,6个DN及以下节点集群,OBS指标一般不需要调整。 CPU配置 建议生产环境每个节点16U起步,4U/8U仅用于体验。 搬迁场景:与搬迁对象保持一致。 新建场景:根据总数据量/100GB,计算CPU核数(与实际场景有关,计算密集型的应该增大CPU核数)。
  • pgxc_group_add_subscription(src_vw_name, target_vw_name) 描述:存算分离架构下,逻辑集群(Virtual Warehouse,以下简称VW)之间建立KV订阅关系,建立了订阅关系之后,消费者VW的KVcahce会定期的从生产者的obs cudesc快照目录增量同步sst文件到本地,后续就可以支持在消费者VM中跨VW查询生产者VW中的表。 创建的订阅关系可以在pgxc_group_subscription表中查询到记录。该函数仅9.0.3及以上集群版本支持。 返回值类型:void 返回信息如下: 表1 pgxc_group_add_subscription(src_vw_name, target_vw_name)返回字段 名称 类型 描述 src_vw_name text 生产者VW名称,通常作为写入数据的VW。 target_vw_name text 消费者VW名称,通常作为读取数据的VW。 示例: 1 2 3 4 5 SELECT pgxc_group_add_subscription('write_group', 'single_read_group'); pgxc_group_add_subscription ------------------ (1 row)
  • pgxc_group_drop_subscription(src_vw_name, target_vw_name) 描述:存算分离架构下,删除VW之间已经建立的KV订阅关系,删除操作是删除pgxc_group_subscription表的记录, 删除KV订阅关系后,消费者VW无法继续跨VW查询生产者VW中的表。该函数仅9.0.3及以上集群版本支持。 返回值类型:void 返回信息如下: 表2 pgxc_group_drop_subscription(src_vw_name, target_vw_name)返回字段 名称 类型 描述 src_vw_name text 生产者VW名称,通常作为写入数据的VW。 target_vw_name text 消费者VW名称,通常作为读取数据的VW。 示例: SELECT pgxc_group_drop_subscription('write_group', 'single_read_group'); pgxc_group_drop_subscription ------------------------------ (1 row)
  • 操作流程 大数据场景下使用OBS实现存算分离的操作流程如图1所示。 图1 操作流程 配置的核心是完成大数据平台与OBS对接,实现OBS作为大数据的统一 数据湖 存储。本文档提供三种主流大数据平台的对接指导,详情请参见支持的大数据平台简介。 (可选)OBS除了可以与主流大数据平台对接外,还可以直接与开源的大数据组件对接。当您使用开源的大数据组件时,可参考支持的大数据组件简介完成与OBS对接。 (可选)如果您的数据仍存储在本地HDFS,需要先将数据迁移到华为云OBS中。详情请参见迁移HDFS数据至OBS。 父主题: 大数据场景下使用OBS实现存算分离
  • 基于Guardian服务的OBS权限配置说明 基于Guardian服务的存算分离场景下,对于开启了Ranger鉴权的 MRS 集群,Ranger管理员可以通过Ranger为集群用户配置OBS目录或文件的读、写权限。 同时,基于Guardian权限模型存算分离,依赖Hive级联授权功能,实现用户基于Ranger对业务表授权,自动细粒度关联OBS对应存储目录的权限,无需二次授权,即用户只需在Ranger页面上对业务表进行一次授权,系统就会自动细粒度关联数据存储源的权限,不需要感知表的存储路径,无需进行二次授权。 Ranger页面OBS授权对象只能针对Manager中自定义的用户组,内置用户组不支持,用户组仅由数字0~9、字母a~Z、下划线或#组成,且最大长度为52个字符,否则将导致策略添加失败。 启用Kerberos认证的集群需要基于Ranger赋权,未启用Kerberos认证的集群默认拥有OBS权限,无需额外配置。 如果当前集群未启用Kerberos认证,访问OBS的用户,需要属于supergroup组。
  • 基于Guardian服务的存算分离配置流程 创建MRS集群。 MRS集群内需包含Guardian、Ranger、Hadoop等基础组件。 目前仅MRS 3.3.0-LTS及之后的版本支持基于Guardian组件对接OBS。 创建OBS委托。 用户需要创建1个具有OBS访问权限的委托,用于Guardian组件对接OBS时使用。 开启Guardian组件对接OBS开关并配置组件。 修改Guardian服务相关配置参数,配置 IAM 委托认证信息。 配置组件数据回收站目录的清理策略。 在存算分离场景下,对接OBS的组件默认开启了数据防误删功能,用户删除数据时,被删除对象会移动至用户对应的回收站目录内,用户需要在OBS文件系统中为对应的目录配置生命周期策略,以避免存储空间被占满的风险。 组件对接OBS。 在具备OBS资源的访问权限后,MRS集群内组件可直接访问对应路径。用户可以通过组件客户端以绝对路径方式直接访问OBS文件系统下的资源。
  • 处理步骤 以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 例如执行后结果如下:
  • Flink访问OBS 在MRS客户端的Flink配置文件“客户端安装路径/Flink/flink/conf/flink-conf.yaml”中,增加如下内容。 fs.obs.access.key: 获取AK/SK和Endpoint信息准备的AK fs.obs.secret.key: 获取AK/SK和Endpoint信息准备的SK fs.obs.endpoint: 获取AK/SK和Endpoint信息准备的Endpoint 在文件中设置AK/SK会明文暴露在配置文件中,请谨慎使用。 添加配置后无需手动添加AK/SK、Endpoint就可以直接访问OBS上的数据。
  • 获取AK/SK和Endpoint信息 使用AK/SK方式对接OBS前,需参考以下操作获取对接OBS的AK、SK和Endpoint信息。 获取AK/SK 登录华为云管理控制台,在“控制台”页面,鼠标移动至右上方的用户名,在下拉列表中选择“我的凭证”。 单击“访问密钥”页签,您可以在访问密钥列表中查看访问密钥ID(AK),在下载的.csv文件中查看秘密访问密钥(SK). 若没有可用的访问密钥,需单击“新增访问密钥”,输入验证码或密码。单击“确定”,生成并下载访问密钥。 请及时下载保存,弹窗关闭后将无法再次获取该密钥信息,但您可重新创建新的密钥。 为了账号安全性,建议您妥善保管并定期修改访问密钥,修改访问密钥的方法为删除旧访问密钥,然后重新生成。 获取EndPoint 终端节点(Endpoint)获取方式请参考地区和终端节点。