云服务器内容精选

  • Doris简介 Doris是一个基于MPP架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris能够较好的满足报表分析、即席查询、统一数仓构建、 数据湖 联邦查询加速等使用场景,用户可以在此之上构建用户行为分析、AB实验平台、日志检索分析、用户画像分析、订单分析等应用。更多相关介绍请参见Apache Doris。 该组件当前为公测阶段,若需使用需联系技术支持申请白名单开通。
  • Doris基本概念 在Doris中,数据都以表(Table)的形式进行逻辑上的描述。 Row&Column 一张表包括行(Row)和列(Column): Row:即用户的一行数据。 Column: 用于描述一行数据中不同的字段。 Column可以分为两大类:Key和Value。从业务角度看,Key和Value可以分别对应维度列和指标列。从聚合模型的角度来说,Key列相同的行,会聚合成一行。其中Value列的聚合方式由用户在建表时指定。 Tablet&Partition 在Doris的存储引擎中,用户数据被水平划分为若干个数据分片(Tablet,也称作数据分桶)。每个Tablet包含若干数据行。各个Tablet之间的数据没有交集,并且在物理上是独立存储的。 多个Tablet在逻辑上归属于不同的分区(Partition)。一个Tablet只属于一个Partition,而一个Partition包含若干个Tablet。因为Tablet在物理上是独立存储的,所以可以视为Partition在物理上也是独立。Tablet是数据移动、复制等操作的最小物理存储单元。 若干个Partition组成一个Table。Partition可以视为是逻辑上最小的管理单元。数据的导入与删除,只能针对一个Partition进行。 数据模型 Doris的数据模型主要分为3类:Aggregate、Unique、Duplicate。 Aggregate模型 导入数据时,对于Key列相同的行会聚合成一行,而Value列会按照设置的AggregationType进行聚合。 AggregationType目前有以下四种聚合方式: SUM:求和,多行的Value进行累加。 REPLACE:替代,下一批数据中的Value会替换之前导入过的行中的Value。 MAX:保留最大值。 MIN:保留最小值。 Unique模型 在某些多维分析场景下,用户更关注的是如何保证Key的唯一性,即如何获得Primary Key唯一性约束。因此,引入了Unique数据模型。 读时合并 Unique模型的读时合并实现完全可以用Aggregate模型中的REPLACE方式替代,其内部的实现方式和数据存储方式也完全一样。 写时合并 Unique模型的写时合并实现,不同于Aggregate模型,查询性能更接近于Duplicate模型,在有主键约束需求的场景上相比Aggregate模型有较大的查询性能优势,尤其是在聚合查询以及需要用索引过滤大量数据的查询中。 在开启了写时合并选项的Unique表中,数据在导入阶段就会去将被覆盖和被更新的数据进行标记删除,同时将新的数据写入新的文件。在查询时,所有被标记删除的数据都会在文件级别被过滤,读取出的数据就都是最新的数据,消除了读时合并中的数据聚合过程,并且能够在很多情况下支持多种谓词的下推。因此在许多场景都能带来比较大的性能提升,尤其是在有聚合查询的情况下。 Duplicate模型 在某些多维分析场景下,数据既没有主键,也没有聚合需求。可以引入Duplicate数据模型来满足这类需求。 这种数据模型区别于Aggregate和Unique模型。数据完全按照导入文件中的数据进行存储,不会有任何聚合。即使两行数据完全相同,也都会保留。 而在建表语句中指定的DUPLICATE KEY,只是用来指明底层数据按照指定的列进行排序。 数据模型的选择建议 因为数据模型在建表时就已经确定,且无法修改。所以,选择一个合适的数据模型非常重要。 Aggregate模型可以通过预聚合,极大地降低聚合查询时所需扫描的数据量和查询的计算量,非常适合有固定模式的报表类查询场景。但是该模型对count(*)查询不友好。同时因为固定了Value列上的聚合方式,在进行其他类型的聚合查询时,需要考虑语义正确性。 Unique模型针对需要唯一主键约束的场景,可以保证主键唯一性约束。但是无法利用ROLLUP等预聚合带来的查询优势。 Unique模型仅支持整行更新,如果用户既需要唯一主键约束,又需要更新部分列(例如将多张源表导入到一张Doris表的场景),则可以考虑使用Aggregate模型,同时将非主键列的聚合类型设置为REPLACE_IF_NOT_NULL。 Duplicate适合任意维度的Ad-hoc查询。虽然同样无法利用预聚合的特性,但是不受聚合模型的约束,可以发挥列存模型的优势(只读取相关列,而不需要读取所有Key列)。
  • Doris架构 Doris整体架构如下图所示,FE和BE节点可以横向无限扩展。 图1 Doris架构 表1 参数说明 名称 说明 MySQL Tools Doris采用MySQL协议,高度兼容MySQL语法,支持标准 SQL,用户可以通过各类客户端工具来访问Doris,并支持与 BI工具无缝对接。 FE 主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。 BE 主要负责存储数据、执行查询计划、副本负载均衡。 Leader Leader为Follower组中选举出来的一种角色。 Follower 一条元数据日志需要在多数Follower节点写入成功,才算成功。 Doris采用MPP的模型,节点间和节点内都是并行执行,适用于多个大表的分布式Join。 支持向量化的查询引擎、AQE( Adaptive Query Execution )技术、CBO 和 RBO 结合的优化策略、热数据缓存查询等。
  • 补丁基本信息说明 表1 补丁基本信息 补丁号 MRS 3.2.0-LTS.1.9 发布时间 2024-06-30 解决的问题 MRS 3.2.0-LTS.1.9修复问题列表: 解决HetuEngine查询gauss date字段报错的问题。 解决HetuEngine计算实例在Yarn上启动失败的问题。 解决HetuEngine CN主备倒换,计算实例状态短暂变成ERROR导致业务失败问题。 支持ClickHouse备份到OBS。 解决ClickHouse物化视图的基表中添加列,报OOM的问题。 解决ClickHouse Mysql引擎偶现卡顿问题(root补丁修复)。 解决ClickHouse内存暴涨后出现停止响应的问题。 解决修改ClickHouse配置时nodeagent会增加Zookeeper连接,旧连接不会释放导致Zookeeper不可用的问题。 解决ClickHouse偶现内置clickhouse用户多次认证失败,用户被锁,导致服务不可用的问题。 解决调用MRS的作业管理接口API,返回的Spark日志的url和实际不一致的问题。 解决Spark JD BCS erver切换成多实例模式后shuffle数据会不断累积,导致磁盘被打满的问题。 解决Spark InsertOverwrite数据不一致问题。 解决Superior调度器分配资源到用户时有可能会卡顿问题。 解决Yarn扩容导致性能劣化问题。 解决Yarn RETS API获取各个队列的资源反馈结果为0的问题。 解决Yarn RETS API并发查询队列详情的接口偶现查询结果为0的问题。 解决管控面提交Flink作业打印敏感日志的问题。 解决Hudi到DWS任务unknown以及无法删除问题。 解决Hudi filegroup下只有一个4bytes文件时,Hudi读写报错的问题。 解决CDL定时线程增加异常保护,防止线程异常,告警不上报的问题。 解决CDL解密环境变量冲突,导致升级时hudi源任务运行失败的问题。 解决删除CDL作业后,数据库表CDC_JOB_EXECUTION中仍存在该作业名的问题。 解决CDL时间函数clock_timestamp()导致Hudi-Dws压测性能下降的问题。 解决Flink create view的select语句包含JTL/TTL hints,不生效的问题。 解决Flink lookup join cow表,作业启动后缓存过期,重新加载不到数据,join无输出的问题。 解决[FLINK-27247]问题。 解决Flink通过代理用户访问普通集群Hive失败问题。 解决磁盘不可用告警无具体盘符问题。 解决阈值告警平滑次数偶现不生效,导致阈值告警频繁上报的问题。 解决Gaussdb健康检查异常,导致实例重启问题(root补丁修复)。 解决Guassdb异常时,acs无自恢复能力的问题。 解决Agent重启会上报大量服务不可用告警的问题。 解决备 OMS 节点,主机重启后,knox进程无法自启动的问题。 解决DBServer频繁主备倒换的问题。 解决Hive MetaStore黑名单机制在并发场景下会出现空指针的问题。 解决HDFS 3个AZ每个AZ下2个NodeManager实例,缩容一个NodeManager后,此AZ持续报AZ不健康的问题。 解决HDFS多AZ场景NameNode的选副本逻辑问题导致rpc时间变长问题。 解决Hue服务不可用告警误报问题。 补丁兼容关系 MRS 3.2.0-LTS.1.9补丁包中包含所有MRS 3.2.0-LTS.1版本单点问题修复补丁。 父主题: MRS 3.2.0-LTS.1.9版本补丁说明
  • 操作步骤 在集群详情页,单击“组件管理”。 图2 组件管理 单击服务列表中指定的服务名称。 单击“服务配置”。 将页面右侧“基础配置”切换为“全部配置”。 图3 全部配置 在左侧导航栏选择“自定义”,MRS将显示当前组件的自定义参数。 “参数文件”显示保存用户新添加的自定义参数的配置文件。每个配置文件中可能支持相同名称的开源参数,设置不同参数值后生效结果由组件加载配置文件的顺序决定。自定义参数支持服务级别与角色级别,请根据业务实际需要选择。不支持单个角色实例添加自定义参数。 根据配置文件与参数作用,在对应参数项所在行“参数”列输入组件支持的参数名,在“值”列输入此参数的参数值。 支持单击和增加或删除一条自定义参数。第一次单击添加自定义参数后才支持删除操作。 修改某个参数的值后需要取消修改,可以单击恢复。 单击“保存配置”,根据界面提示保存配置。
  • 集群创建失败 如果集群创建失败后,失败任务会自动转入“失败任务管理”页面。选择“现有集群”,单击图4中进入“失败任务管理”页面,在“任务状态”列中,将鼠标移动到上可以查看到失败原因,如图5所示。可以参见查看失败的集群操作任务章节删除失败任务。 图4 失败任务管理 图5 失败原因 MRS集群创建失败错误码列表如表6所示。 表6 错误码 错误码 说明 MRS.101 用户请求配额不足,请联系客服提升配额。 MRS.102 用户Token为空或不合法,请稍后重试或联系客服。 MRS.103 用户请求不合法,请稍后重试或联系客服。 MRS.104 用户资源不足,请稍后重试或联系客服。 MRS.105 现子网IP不足,请稍后重试或联系客服。 MRS.201 因E CS 服务导致失败,请稍后重试或联系客服。 MRS.202 因 IAM 服务导致失败,请稍后重试或联系客服。 MRS.203 因VPC服务导致失败,请稍后重试或联系客服。 MRS.400 MRS内部出错,请稍后重试或联系客服。
  • 操作步骤 进入购买MRS集群页面。 在购买集群页面,选择“自定义购买”页签。 创建集群时需要注意配额提醒。当资源配额不足时,建议按照提示申请足够的资源,再创建集群。 参考软件配置配置集群信息后,单击“下一步”。 图1 软件配置 部分区域仅支持一种计费方式,请以控制台实际方式为准。 参考硬件配置配置集群信息后,单击“下一步”。 图2 硬件配置 当前MRS集群如需规划Task节点组进行弹性伸缩,在配置集群节点信息过程中,可参考以下步骤进行操作: 添加分析Task节点组: 对于集群类型为“分析集群”或“混合集群”的集群: 系统会自动添加分析Task节点组“task_node_analysis_group”,请根据实际需求设置节点数量、实例规格及节点磁盘配置。 若不需要该分析Task节点组,可手动删除。 对于集群类型为“自定义”的集群: 在集群节点配置区域,单击“添加节点组”,手动添加一个新的节点组。 配置“拓扑调整”参数为“开启”。 手动选择角色拓扑,使该节点组只包含NodeManager角色(NM)即可。 也可以在集群创建完成后,通过手动添加节点组的方式添加Task节点组,可参考添加Task节点。 添加流式Task节点组(仅MRS 1.9.2支持): 对于集群类型为“流式集群”、“混合集群”的集群: 系统会自动添加流式Task节点组“task_node_streaming_group”,请根据实际需求设置节点数量、实例规格及节点磁盘配置。 若不需要该流式Task节点组,可手动删除。 参考高级配置配置集群信息后,单击“下一步”。 图3 高级配置 在“确认配置”页面检查配置集群信息,如需调整配置,可单击,跳转到对应页签后重新设置参数。 勾选通信安全授权,通信安全授权详情请参考授权安全通信。 单击“立即购买”。 当集群开启Kerberos认证时,需要确认是否需要开启Kerberos认证,若确认开启请单击“继续”,若无需开启Kerberos认证请单击“返回”关闭Kerberos认证后再创建集群。购买集群后,不支持修改。 如果您对价格有疑问,可以单击页面左下角“了解计费详情”,根据计费详情来了解产品价格。 若您选择“按需计费”时,可能因为冻结保证金失败或者账号可能存在风险导致下单失败,请联系技术支持处理。 单击“返回集群列表”,可以查看到集群创建的状态。 集群创建的状态过程请参见表1中的“状态”参数说明。 集群创建需要时间,所创集群的初始状态为“启动中”,创建成功后状态更新为“运行中”,请您耐心等待。 MRS系统界面支持同一时间并发创建10个集群,且最多支持管理100个集群。
  • 软件配置 表1 MRS集群软件配置 参数 参数说明 区域 选择区域。 不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。 计费模式 MRS提供两种计费模式: 包年/包月 按需计费 选择“按需计费”时,可能需要冻结一定的保证金。详细内容,请参见计费说明。 购买时长 包年/包月模式下该参数有效,表示购买集群的时长。最短时长为1个月,最长时长为1年。 如需开通自动续费功能,请勾选“自动续费”,开通后按月购买的集群自动续费周期为1个月,按年购买的集群自动续费周期为1年。 集群名称 集群名称不允许重复。 只能由字母、数字、中划线和下划线组成,并且长度为1~64个字符。 默认名称为mrs_xxxx,xxxx为字母和数字的四位随机组合数,系统自动组合。 集群类型 提供几种集群类型: 分析集群:用来做离线数据分析,提供的是Hadoop体系的组件。 流式集群:用来做流处理任务,提供的是流式处理组件。 混合集群:既可以用来做离线数据分析,也可以用来做流处理任务,提供的是Hadoop体系的组件和流式处理组件。建议同时需要做离线数据分析和流处理任务时使用混合集群。 自定义:用户可按照业务需求调整集群服务的部署方式,具体请参见购买自定义拓扑集群。(目前仅MRS 3.x版本支持) 说明: MRS流式集群不支持“作业管理”和“文件管理”功能。 如需在集群中安装全部组件,请选择“自定义”类型集群。 版本类型 提供以下版本类型: 普通版: 支持集群基础操作,如配置、管理和运维。 支持Presto、Impala、Kudu、Sqoop等组件。 LTS版: 除支持集群基础操作外,还提供版本升级能力。 支持多可用区部署。 支持HetuEngine、IoTDB、CDL组件。 默认版本类型为普通版。 集群版本 MRS目前支持MRS 1.9.2、MRS 3.1.0、MRS 3.1.2-LTS.3、MRS 3.1.5、MRS 3.2.0-LTS.1、MRS 3.3.0-LTS.1版本。默认值为当前最新版本。 组件选择 MRS集群配套的组件,MRS不同版本集群支持的组件版本请参见MRS组件版本一览表。 元数据 是否使用外部数据源存储元数据。 本地元数据: 元数据存储在集群本地。 外置数据连接:使用外部数据源元数据,若集群异常或删除时将不影响元数据,适用于存储计算分离的场景。 支持Hive或Ranger组件的集群支持该功能。 组件名 当“元数据”选择“外置数据连接”时该参数有效。用于表示可以设置外部数据源的组件类型。 Hive Ranger 数据连接类型 当“元数据”选择“外置数据连接”时该参数有效。用于表示外部数据源的类型。创建集群时“数据连接类型”仅支持“本地数据库”。 组件端口(目前仅LTS版本支持) 当前MRS集群内各组件默认通讯端口值的策略。 开源:组件的默认通讯端口遵循开源社区的规范不做修改,与开源社区保持一致。 定制:组件的默认通讯端口与开源社区不一致。 开源默认端口与定制默认端口区别请参考开源组件Web站点。
  • 前提条件 待安装客户端节点为集群外节点时,该节点必须能够与集群内节点网络互通,否则安装会失败。 待安装客户端节点必须启用NTP服务,并保持与服务端的时间一致,否则安装会失败。 在节点上安装客户端可以使用root或任意操作系统用户进行操作,要求该用户对客户端文件存放目录和安装目录具有操作权限,两个目录的权限为“755”。 本章节以使用操作系统用户“user_client”安装客户端进行举例,安装目录为“/opt/hadoopclient”。 使用omm和root以外的用户安装客户端时,若“/var/tmp/patch”目录已存在,需将此目录权限修改为“777”,将此目录内的日志权限修改为“666”。
  • 回答 HetuEngine计算实例的启动依赖Python文件,需确保各节点“/usr/bin/”路径下面存在Python文件。 登录 FusionInsight Manager,单击“主机”,查看并记录所有主机的业务IP。 以root用户登录1记录的节点,在所有节点都执行以下命令,在“/usr/bin/”目录下添加“python3”的软连接。 cd /usr/bin ln -s python3 python 重新启动HetuEngine计算实例。
  • 配置场景 SparkSQL在进行shuffle操作时默认的分块数为200。在数据量特别大的场景下,使用默认的分块数就会造成单个数据块过大。如果一个任务产生的单个shuffle数据块大于2G,该数据块在被fetch的时候还会报类似错误: Adjusted frame length exceeds 2147483647: 2717729270 - discarded 例如,SparkSQL运行TPCDS 500G的测试时,使用默认配置出现错误。所以当数据量较大时需要适当的调整该参数。
  • 回答 Linux的netcat命令没有与Zookeeper服务器安全通信的选项,所以当启用安全的netty配置时,它不能支持Zookeeper四个字母的命令。 为了避免这个问题,用户可以使用下面的Java API来执行四个字母的命令。 org.apache.zookeeper.client.FourLetterWordMain 例如: String[] args = new String[]{host, port, "stat"}; org.apache.zookeeper.client.FourLetterWordMain.main(args); netcat命令只能用于非安全的netty配置。
  • 回答 由于在删除了大量文件之后,DataNode需要时间去删除对应的Block。当立刻重启NameNode时,NameNode会去检查所有DataNode上报的Block信息,发现已删除的Block时,会输出对应的INFO日志信息,如下所示: 2015-06-10 19:25:50,215 | INFO | IPC Server handler 36 on 25000 | BLOCK* processReport: blk_1075861877_2121067 on node 10.91.8.218:9866 size 10249 does not belong to any file | org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.processReport(BlockManager.java:1854) 每一个被删除的Block会产生一条日志信息,一个文件可能会存在一个或多个Block。当删除的文件数过多时,NameNode会花大量的时间打印日志,然后导致NameNode启动慢。 当出现这种现象时,您可以通过如下方式提升NameNode的启动速度。 删除大量文件时,不要立刻重启NameNode,待DataNode删除了对应的Block后重启NameNode,即不会存在这种情况。 您可以通过hdfs dfsadmin -report命令来查看磁盘空间,检查文件是否删除完毕。 如已大量出现以上日志,您可以将NameNode的日志级别修改为ERROR,NameNode不会再打印此日志信息。 等待NameNode启动完毕后,再将此日志级别修改为INFO。修改日志级别后无需重启服务。
  • 回答 当nodeSelectPolicy为SEQUENCE,且第一个连接到RM的NM不可用时,RM会在“yarn.nm.liveness-monitor.expiry-interval-ms”属性中指定的周期内,一直尝试为同一个NM分配任务。 可以通过两种方式来避免上述问题: 使用其他的nodeSelectPolicy,如RANDOM。 参考修改集群服务配置参数,进入Yarn“全部配置”页面。在搜索框搜索以下参数,通过“yarn-site.xml”文件更改以下属性: “yarn.resourcemanager.am-scheduling.node-blacklisting-enabled” = “true”; “yarn.resourcemanager.am-scheduling.node-blacklisting-disable-threshold” = “0.5”。
  • 在UI显示container日志 默认情况下,系统会将container日志收集到HDFS中。如果您不需要将container日志收集到HDFS中,可以配置参数见表2。具体配置操作请参考修改集群服务配置参数。 表2 参数说明 配置参数 说明 默认值 yarn.log-aggregation-enable 设置是否将container日志收集到HDFS中。 设置为true,表示日志会被收集到HDFS目录中。默认目录为“{yarn.nodemanager.remote-app-log-dir}/${user}/{thisParam}”,该路径可通过界面上的“yarn.nodemanager.remote-app-log-dir-suffix”参数进行配置。 设置为false,表示日志不会收集到HDFS中。 修改参数值后,需重启Yarn服务使其生效。 说明: 在修改值为false并生效后,生效前的日志无法在UI中获取。您可以在“yarn.nodemanager.remote-app-log-dir-suffix”参数指定的路径中获取到生效前的日志。 如果需要在UI上查看之前产生的日志,建议将此参数设置为true。 true