云服务器内容精选

  • 操作场景 Ranger管理员可通过Ranger为Spark2x用户进行相关的权限设置。 Spark2x开启或关闭Ranger鉴权后,需要重启Spark2x服务。 需要重新下载客户端,或手动刷新客户端配置文件“客户端安装目录/Spark2x/spark/conf/spark-defaults.conf”: 开启Ranger鉴权:spark.ranger.plugin.authorization.enable=true,同时需要修改参数“spark.sql.authorization.enabled”值为“true”。 关闭Ranger鉴权:spark.ranger.plugin.authorization.enable=false Spark2x中,spark-beeline(即连接到JD BCS erver的应用)支持Ranger的IP过滤策略(即Ranger权限策略中的Policy Conditions),spark-submit与spark-sql不支持。 MRS 3.3.0-LTS及之后的版本中,Spark2x服务改名为Spark,服务包含的角色名也有差异,例如JobHistory2x变更为JobHistory。相关涉及服务名称、角色名称的描述和操作请以实际版本为准。
  • 示例 alter table h0 add columns(ext0 string); alter table h0 add columns(new_col int not null comment 'add new column' after col1); alter table complex_table add columns(col_struct.col_name string comment 'add new column to a struct col' after col_from_col_struct);
  • MemArtsCC与OBS的关系 Hadoop-OBS提供一种新的InputStream:OBSMemArtsCCInputStream,该InputStream从部署在计算侧上的MemArts集群读取数据,从而减少OBS服务端压力,提升数据读取性能的目标。 MemArtsCC会将数据持久化存储到计算侧的存储中(SSD),Hadoop-OBS对接MemArtsCC有如下使用场景: 减少OBS服务端压力 MemArtsCC会将热点数据存储在计算侧集群,可以起到降低OBS服务端带宽的作用。 提升存算分离架构访问数据的性能 利用MemArtsCC的本地存储,访问热点数据不必跨网络,可以提升Hadoop-OBS上层应用数据读取效率。
  • MemArtsCC基本原理 MemArtsCC是一个分布式计算侧缓存系统。计算任务运行在计算集群的虚拟机(Virtual Machine, VM)上,数据存储在远端的对象存储(Object Storage Service, OBS)集群中。由于远端OBS的数据访问速度限制,VM上的计算任务经常需要等待数据而拖慢任务的执行。因此,计算侧需要一个高速的缓存层来消除计算集群和OBS之间的数据访问鸿沟。为了解决这个问题,提出MemArts分布式客户端缓存,MemArts部署在计算侧的VM中,通过智能预取OBS上的数据来加速计算任务的执行。 图1 MemArtsCC结构图 表1 MemArtsCC结构图说明 名称 说明 CC SDK 提供OBSA(OBSA,hadoop客户端插件) FS客户端使用的可访问OBS服务器对象的SDK。 ShardView 提供一个全局的集群视图。给定一个文件分片key,通过查询ShardView可以定位其在哪一个物理节点上。 CacheCore 提供数据读取,分片查询、数据预取、缓存淘汰功能。 LocalStore 提供管理本地SSD中缓存数据的读和写功能。 RemoteStore 提供访问OBS服务器的接口,同时内部支持通过流控机制控制预取带宽。 CM(Cluster Manager) 该集群管理模块需要具备集群视图管理,提供静态和动态视图的更新、帮助业务实现快速选主,且集群管理本身要保证服务的高可靠、视图等数据的一致性等。 父主题: MemArtsCC
  • 操作步骤 先获取clickhouse-example样例代码工程。 代码获取地址:https://github.com/huaweicloud/huaweicloud-mrs-example/blob/mrs-3.1.2/src/clickhouse-examples/。 在样例工程“conf”目录下有一个“clickhouse-example.properties”配置文件,其中各项的配置的作用如下所示: #连接节点或Balancer的ip列表,ip之间用逗号隔开 loadBalancerIPList= #是否需要开启ssl,如果取值为true,则loadBalancerHttpsPort必填 sslUsed=true #端口号 loadBalancerHttpPort= loadBalancerHttpsPort= #ClickHouse安全模式开关,安全模式集群时该参数固定为true。 CLICKHOUSE_SECURITY_ENABLED=true #连接的用户名 user= #连接的用户的密码 password= #集群名称 clusterName= #数据库名称 databaseName= #表名称 tableName= #一个批次写入的条数 batchRows=10000 #写入数据的总批次 batchNum=10 #ip:port。安全模式下https端口,普通模式下http端口 clickhouse_dataSource_ip_list= #ip:tcp port native_dataSource_ip_list=ip:port,ip:port,ip:port 在Demo.java有三种连接JDBC的样例:节点的JDBC连接、banlancer的JDBC连接和tcp端口的banlancer的JDBC连接。 Demo提供了createDatabase、createTable、insertData和queryData的样例。
  • 规则 大批量少频次的插入。 内容要求:ClickHouse的每次数据插入都会生成一到多个part文件,如果data part过多则会导致merge压力变大,甚至出现服务异常影响数据插入。建议一次插入10万行,每秒不超过1次插入。 一次只插入一个分区内的数据。 内容要求:如果数据属于不同的分区,则每次插入,不同分区的数据会独立生成part文件,导致part总数量膨胀。甚至写入报错“Merges are processing significantly slower than inserts”。一批次写入的数据,对应的分区数太多。ClickHouse建表之后insert batch时,会对不同的分区创建一个目录。如果一个batch里面的数据对应了过多的分区,那么一次insert就会生成较多的分区目录,后台merge线程处理速度跟不上分区增加的速度,社区规格是每秒不超过一个数据目录。 具体的操作:确认一个batch的数据对应了多少个分区,insert的时候,尽量保证一个batch包含的分区数是1。 慎用delete、update操作。 内容要求:建议使用CollapsingMergeTree、VersionedCollapsingMergeTree引擎或根据分区批量清理。 ClickHouse需要写本地表。 内容要求:连接balancer写入报错Request Entity Too Large。这是由于Nginx对http请求体大小有限制,而一次写入的数据量超过了这个限制。 规避:修改Nginx配置项client_max_body_size为一个较大的值。 解决:写本地表,不要通过balancer写入数据。
  • MRS集群创建限制 表1 MRS集群创建约束说明 限制项 说明 网络要求 MRS集群必须创建在VPC子网内。 创建MRS集群时,支持自动创建安全组,也可选择已有的安全组。 MRS集群使用的安全组请勿随意放开权限,避免被恶意访问。 浏览器 建议使用推荐的浏览器登录MRS管理界面。 Google Chrome:36.0及更高版本 Microsoft Edge:随Windows操作系统更新。 数据存储 MRS集群节点仅用于存储用户业务数据,非业务数据建议保存在 对象存储服务 或其他弹性云服务器中。 MRS集群节点仅用于运行MRS集群内服务,其他客户端应用程序、用户业务程序建议申请独立弹性云服务器部署。 请根据业务需要规划集群节点的磁盘,如果需要存储大量业务数据,请及时增加云硬盘数量或存储空间,以防止存储空间不足影响节点正常运行。 MRS集群扩容(包含存储能力和计算能力)可通过增加Core节点或者Task节点的方式实现。 密码要求 MRS不会保存您设置的登录Master节点的初始密码,请您设置并保管好密码。为避免被恶意攻击,建议设置复杂度高的密码。 技术支持 集群处于非人为异常状态时,可以联系技术支持人员,技术支持人员征得您同意后会请您提供密码,登录MRS集群进行问题排查。 集群处于异常状态时,MRS仍然会收取集群费用。建议您及时联系技术支持人员处理集群异常。
  • Doris on Hudi查询加速 Doris on Hudi支持以下方式的查询加速: Doris支持Hudi Parquet表的Bucket Shuffle Join操作 Doris支持使用Bucket Shuffle Join对Hudi数据源查询进行加速,当前支持对Hudi所有字段类型及存储在OBS上的Hudi表进行该操作。该功能由session级别变量“enable_hudi_bucket_shuffle” 控制是否启用,默认关闭,可通过连接Doris后执行set enable_hudi_bucket_shuffle=true;命令开启。 在等值Join条件之中包含两张表的分桶列,当左表的分桶列为等值的Join条件时,很大概率会被规划为Bucket Shuffle Join。 左表的分桶列的类型与右表等值Join列的类型需要保持一致。 Bucket Shuffle Join功能只生效于等值Join的场景。 Bucket Shuffle Join功能只能在左表为单分区时生效。 支持参与Join的两张表,一张是Hudi表,一张是Doris内部表。 Doris支持Hudi的隐式分区功能(受限特性) Doris支持Hudi的隐式分区功能以进行查询加速。该功能由变量“enable_hudi_hidden_partition”控制是否启用,默认关闭,可通过连接Doris后执行ADMIN SET FRONTEND CONFIG ("enable_hudi_hidden_partition" = "true");命令开启。 Doris支持对Hudi表进行桶裁剪(受限特性) Doris支持对Hudi表进行桶裁剪以进行查询加速。该功能由变量“enable_hudi_bucket_prunning”控制是否启用,默认关闭,可通过连接Doris后执行ADMIN SET FRONTEND CONFIG ("enable_hudi_bucket_prunning" = "true");命令开启。
  • 操作场景 开启级联授权功能的集群极大地提升了鉴权易用性,用户只需在Ranger页面上对业务表进行一次授权,系统就会自动细粒度关联数据存储源的权限,不需要感知表的存储路径,无需进行二次授权。同时也补齐了基于存算分离授权功能缺陷,可以在Ranger上实现对存算分离表的授权鉴权。Hive表的级联授权功能主要体现为: 开启Ranger级联授权后,Ranger中创建策略对表授权时,只需创建表的Hive策略,无需对表存储源进行二次授权。 针对已授权的库/表,当存储源发生变动时,周期同步关联新存储源HDFS/OBS,生成对应权限。 不支持对视图表进行级联授权。 仅支持对数据库/表进行级联授权操作,不支持对分区做级联权限,如果分区路径不在表路径下,则需要用户手动授权分区路径。 不支持对Hive Ranger策略中的“Deny Conditions”进行级联授权,即“Deny Conditions”的权限仅限制表权限,不能生成HDFS/OBS存储源端的权限。 不支持在Hive Ranger中创建“database”为“*”且“table”为“*”的策略。 级联授权生成的HDFS/OBS存储源端的权限弱于HDFS Ranger策略的权限,即如果已经对表的HDFS存储源设置了HDFS Ranger权限,则级联权限将不会生效。 不支持对存储源为OBS的表级联授权后直接进行alter操作,需要给对应用户组额外授予OBS表路径的父目录的“Read”和“Write”权限才能使用alter功能,且用户组仅由数字0~9、字母a~Z、下划线或#组成,且最大长度为52个字符,否则将导致策略添加失败,可参考管理MRS集群用户组修改用户组信息。
  • MRS集群安装的Python版本是多少? 以root用户登录任意一个Master节点,然后执行python3命令即可获取MRS集群安装的Python版本。 表1 MRS集群安装的Python版本 MRS集群版本 Python版本 MRS 3.1.0 Python 3.8.0 MRS 3.0.5 Python 3.7.0 MRS 3.0.2 Python 3.7.0 MRS 2.1.1 Python 3.6.8 MRS 2.1.0 Python 3.6.8 MRS 1.9.3 Python 3.6.8 父主题: 集群管理类
  • 升级组件安装包 该操作可以解决添加服务、添加实例、新下载客户端场景下的补丁安装。 登录集群主 OMS 节点,执行以下命令。 su - omm cd /opt/Bigdata/patches/MRS_3.1.0.0.16/package sh update_package.sh 登录集群备OMS节点,执行以下命令。 su - omm cd /opt/Bigdata/patches/MRS_3.1.0.0.16/package sh update_package.sh
  • 升级客户端 如果有使用自主安装的客户端(集群内、外新下载客户端),需要执行客户端升级操作。 登录集群主节点并执行以下命令: cd /opt/Bigdata/patches/{MRS补丁版本号}/download/ 将补丁安装包拷贝到客户端机器/opt/目录下: scp patch.tar.gz {客户端机器IP}:/opt/ 例如: scp patch.tar.gz 127.0.0.1:/opt/ 登录客户端所在节点。 执行以下命令创建补丁目录并解压补丁包: mkdir /opt/{MRS补丁版本号} tar -zxf /opt/patch.tar.gz -C /opt/{MRS补丁版本号} 执行客户端补丁升级。 登录客户端所在节点,并执行以下命令: cd /opt/{MRS补丁版本号}/client sh upgrade_client.sh upgrade {客户端安装目录} 例如: sh upgrade_client.sh upgrade /opt/client/
  • 升级HDFS上组件的zip包 登录集群主节点并执行以下命令: su - omm cd /opt/Bigdata/patches/{MRS补丁版本号}/client/ source /opt/Bigdata/client/bigdata_env 所有涉及{MRS补丁版本号}目录名称的操作,均以实际安装的补丁号为准。 例如: cd /opt/Bigdata/patches/MRS_3.1.0.0.16/client/ 安全集群需要认证对HDFS有权限的用户,普通集群无需执行: kinit {用户} 执行以下命令升级HDFS上的zip包: sh update_hdfs_file.sh 升级完成后需要在 FusionInsight Manager界面上重启Spark的JDB CS erver2x实例。
  • 场景一:单独配置弹性伸缩规则 单独配置弹性伸缩规则场景:需要根据Yarn资源使用情况动态调整节点数,在Yarn可用内存低于20%时扩容5个节点,可用内存高于70%时缩容5个节点。Task节点组最高不超过10个节点,最低不少于1个节点。 进入弹性伸缩配置界面后,配置弹性伸缩规则。 配置节点默认范围 输入Task实例弹性伸缩的数量范围,此约束应用于所有扩容缩容规则,取值范围为0~500。 例如本业务场景中,配置为1~10。 配置弹性伸缩规则 需要配置扩容或者缩容规则,否则弹性伸缩将不会启用。 规则类型选择“扩容”或者“缩容”。 单击“添加规则”,进入规则编辑页面。 图2 添加规则 配置“规则名称”、“如果”、“持续”、“添加”、“冷却时间”,具体弹性伸缩指标含义可以参考MRS集群Task节点弹性伸缩概述。 单击“确定”。 您可以在弹性伸缩页面,扩容或者缩容区域查看、编辑或删除配置的规则。您可以继续添加并配置多条规则。 单击“确定”,完成弹性伸缩规则设置。 如果是为已有集群配置弹性伸缩的场景,需勾选“我同意授权MRS服务根据以上策略自动进行节点扩容/缩容操作。”。
  • 场景二:单独使用资源计划 当数据量以天为周期有规律的变化,并且希望在数据量变化前提前完成集群的扩缩容,可以使用MRS的资源计划配置在规定时间内按计划调整Task节点数量。 例如:某项实时处理业务数据量在周一、周二和周六7:00~13:00出现高峰,其他时间保持平稳低水平。假设使用MRS流式集群来处理该业务数据,在周一、周二和周六7:00~13:00时,为应对数据量高峰需要5个Task节点的资源,其他时间只需要2个Task节点。 进入弹性伸缩配置界面后,配置资源计划。 资源计划可调控节点数量,也会对实际价格有影响,请谨慎操作。 节点数量范围的“默认范围”设置为“2-2”,表示除资源计划规定时间范围外,其他时间Task节点数量固定为2个。 单击默认范围下方的“配置指定时间段的节点数量范围”或者“添加资源计划”。 配置“生效日期”、“时间范围”和“节点数量范围”。 例如此处“生效日期”设置为周一、周二和周六,“时间范围”设置为“07:00-13:00”,“节点数量范围”设置为“5-5”,表示在该时间范围内,Task节点数量固定为5个。 单击“配置指定时间段的节点数量范围”配置多条资源计划。 生效日期默认是每日生效,也可以选择周一至周日任意一天或几天生效。 如果没有配置指定时间段的节点数量范围,则节点数量范围以“默认范围”为准。 如果配置了指定时间段的节点数量范围,则在这个时间范围内,以配置的“节点数量范围”为准。不在配置的时间范围时,则以“默认范围”为准。