-
MRS 集群保留JDK说明 MRS集群是租户完全可控的大数据应用开发平台,用户基于平台开发业务后,将业务程序部署到大数据平台运行。由于需要具备开发调测能力,因此要在MRS集群中保留JDK。 此外,MRS集群功能中如下关键特性也强依赖JDK。 HBase BulkLoad HBase BulkLoad支持用户自定义proto文件将数据文件中的字段导入HBase,该特性需要使用JDK将用户自定义的proto文件转换成Java文件,然后编译成Class文件运行。 组件进程堆栈信息采集 MRS集群内角色或实例的堆栈信息采集功能依赖于JDK,具体参见“采集堆栈信息”章节。 安全风险说明:JDK中包含javac、jmap、jdb等调测工具,攻击者可以利用调测工具调试业务进程,可能造成进程中敏感信息泄露。但是此类攻击需要攻击者拿到集群节点的Shell权限后才可以执行,MRS集群部署在VPC内,有安全组控制访问,故不将MRS集群暴露给不可信网络即可消解该风险。 父主题: 安全
-
ClickHouse开源增强特性 MRS ClickHouse具备“手动挡”集群模式升级、平滑弹性扩容、高可用HA部署架构等优势能力,具体详情如下: 手动挡集群模式升级 如图1所示,多个ClickHouse节点组成的集群,没有中心节点,更多的是一个静态资源池的概念,业务要使用ClickHouse集群模式,需要预先在各个节点的配置文件中定义cluster信息,等所有参与的节点达成共识,业务才可以正确的交互访问,也就是说配置文件中的cluster才是通常理解的“集群”概念。 图1 ClickHouse集群 常见的数据库系统,隐藏了表级以下的数据分区、副本存储等细节,用户是无感知的,而ClickHouse则要求用户主动来规划和定义数据分片(shard)、分区(partition)、副本(replica)位置等详细配置。它的这种类似“手动挡”的属性,给用户带来极不友好的体验,所以MRS服务的ClickHouse实例对这些工作做了统一的打包处理,适配成了“自动挡”,实现了统一管理,灵活易用。 具体部署形态上,一个ClickHouse实例将包含3个ZooKeeper节点和多个ClickHouse节点,采用Dedicated Replica模式,数据双副本高可靠。 图2 ClickHouse的cluster结构 平滑的弹性扩容能力 随着业务的快速增长,面对集群存储容量或者CPU计算资源接近极限等场景,MRS服务提供了ClickHouse数据迁移工具,该工具可以将某几个ClickHouseServer实例节点上的一个或多个MergeTree引擎分区表的部分分区迁移至其他ClickHouseServer节点上相同的表中,以便保障业务可用性,实现了更加平滑的扩容能力。 在用户对集群进行扩容ClickHouse节点时,可以使用该工具将原节点上的部分数据迁移至新增节点上,从而达到扩容后的数据均衡。 高可用HA部署架构 MRS服务提供了基于ELB的HA部署架构,可以将用户访问流量自动分发到多台后端节点,扩展系统对外的服务能力,实现更高水平的应用容错。如图3所示,客户端应用请求集群时,使用ELB(Elastic Load Balance)来进行流量分发,通过ELB的轮询机制,写不同节点上的本地表(Local Table),读不同节点上的分布式表(Distributed Table),这样,无论集群写入的负载、读的负载以及应用接入的高可用性都具备了有力的保障。 ClickHouse集群发放成功后,每个ClickHouse实例节点对应一个副本replica,两个副本组成一个shard逻辑分片。如创建ReplicatedMergeTree引擎表时,可以指定分片,相同分片内的两个副本数据就可以自动进行同步。 图3 高可用HA部署架构图 父主题: ClickHouse
-
ClickHouse与其他组件的关系 ClickHouse安装部署依赖ZooKeeper服务。 ClickHouse通过Flink流计算应用加工生成通用的报表数据(明细宽表),准实时写入到ClickHouse,通过Hive/Spark作业加工生成通用的报表数据(明细宽表),批量导入到ClickHouse。 ClickHouse暂不支持对接Kafka普通模式和HDFS安全模式。 父主题: ClickHouse
-
StarRocks架构 StarRocks整体架构如下图所示,FE和BE节点可以水平无限扩展。 图1 StarRocks架构 表1 StarRocks节点及角色说明 名称 说明 Client Application StarRocks兼容MySQL协议,支持标准SQL语法,用户可通过各类MySQL客户端和常用BI工具对接。 SRFE StarRocks的前端节点,主要负责管理元数据、管理客户端连接、进行查询规划、查询调度等工作。 SRBE StarRocks的后端节点,主要负责数据存储和SQL计算等工作。 Leader Leader从Follower中自动选出,FE Leader提供元数据读写服务,Follower和Observer只有读取权限,无写入权限。 Follower Follower只有元数据读取权限,无写入权限,Follower参与Leader选举。 Observer Observer主要用于扩展集群的查询并发能力,可选部署。Observer不参与选主,不会增加集群的选主压力。
-
StarRocks简介 StarRocks是一款高性能分析型
数据仓库 ,使用向量化、MPP架构、CBO、智能物化视图、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。 StarRocks既支持从各类实时和离线的数据源高效导入数据,也支持直接分析
数据湖 上各种格式的数据。 StarRocks兼容MySQL协议,可使用MySQL客户端和常用BI工具对接进行数据分析,同时StarRocks具备水平扩展、高可用、高可靠、易运维等特性,广泛应用于实时数仓、OLAP报表、数据湖分析等场景。 更多相关介绍请参见StarRocks。 该组件当前为公测阶段,若需使用需联系技术支持申请白名单开通。
-
StarRocks基本概念 在StarRocks中,数据都以表(Table)的形式进行逻辑上的描述。 StarRocks中的表由行和列构成,每行数据对应用户一条记录,每列数据具有相同的数据类型。所有数据行的列数相同,可以动态增删列。在StarRocks中,一张表的列可以分为维度列(也称为Key列)和指标列(也称为Value列),维度列用于分组和排序,指标列的值可以通过聚合函数sum、count、min、max、hll_union_agg和bitmap_union等累加起来。 列式存储 在StarRocks中,表数据按列存储。物理上,一列数据会经过分块编码、压缩等操作,然后持久化存储到非易失设备上。但在逻辑上,一列数据可以看成是由相同类型的元素构成的一个数组, 一行数据的所有列值在各自的数组中按照列顺序排列,即拥有相同的数组下标。数组下标是隐式的,不需要存储。表中所有的行按照维度列,做多重排序,排序后的位置就是该行的行号。 索引 StarRocks通过前缀索引 (Prefix Index) 和列级索引,能够快速找到目标行所在数据块的起始行号。 加速处理 StarRocks通过预先聚合、分区分桶、物化视图、列级索引等机制实现数据的加速处理。 数据模型 StarRocks支持四种数据模型,分别是明细模型(Duplicate Key Model)、聚合模型(Aggregate Key Model)、更新模型(Unique Key Model)和主键模型(Primary Key Model)。 这四种数据模型能够支持多种数据分析场景,例如
日志分析 、数据汇总分析、实时分析等。创建表时,您需要指定数据模型(Data Model),当数据导入至数据模型时,StarRocks会按照排序键对数据进行排序、处理和存储。四种数据模型介绍如下: 明细模型 明细模型是StarRocks默认的建表模型。如果在建表时未指定任何模型,默认创建明细类型的表。 聚合模型 建表时,支持定义排序键和指标列,并为指标列指定聚合函数。当多条数据具有相同的排序键时,指标列会进行聚合。在分析统计和汇总数据时,聚合模型能够减少查询时所需要处理的数据,提升查询效率。 更新模型 建表时,支持定义主键和指标列,查询时返回主键相同的一组数据中的最新数据。相对于明细模型,更新模型简化了数据导入流程,能够更好地支撑实时和频繁更新的场景。 主键模型 主键模型支持分别定义主键和排序键。数据导入至主键模型的表中时,先按照排序键排序后再存储。查询时返回主键相同的一组数据中的最新数据。相对于更新模型,主键模型在查询时不需要执行聚合操作,并且支持谓词和索引下推,能够在支持实时和频繁更新等场景的同时,提供高效查询。 数据分布 建表时,您可以通过设置合理的分区和分桶,实现数据均匀分布和查询性能提升。数据均匀分布是指数据按照一定规则划分为子集,并且均衡地分布在不同节点上。查询时能够有效裁剪数据扫描量,最大限度地利用集群的并发性能,从而提升查询性能。
-
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是一个基于MPP架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris能够较好的满足报表分析、即席查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建用户行为分析、AB实验平台、日志检索分析、用户画像分析、订单分析等应用。更多相关介绍请参见Apache Doris。 该组件当前为公测阶段,若需使用需联系技术支持申请白名单开通。更多关于Doris组件操作指导,请参考使用Doris。
-
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 结合的优化策略、热数据缓存查询等。
-
Guardian与其他组件的关系 HDFS、Hive、Spark、Flink、HBase、Loader、HetuEngine在访问OBS之前,会先通过访问Guardian获取到访问OBS的临时凭据。Guardian会根据当前登录的用户去访问
IAM 请求生成带细粒度鉴权内容的临时凭据再返回给组件,组件拿此凭据去访问OBS,OBS根据凭据决定当前用户是否有权限访问。 图2 Guardian与其他组件的关系
-
Guardian基本原理 Guardian是一个在存算分离场景下为HDFS、Hive、Spark、HBase、Loader、HetuEngine等服务提供访问OBS的临时认证凭据的服务,只有对接OBS的场景下才需要安装Guardian组件。Guardian的典型特性包括: 提供获取访问OBS的临时认证凭据的能力。 提供访问OBS的细粒度权限控制的能力。 提供访问OBS的临时认证凭据的统一缓存刷新能力。 Guardian服务端主要是TokenServer角色提供功能和能力,TokenServer支持多实例部署,每个实例都可以提供相同的功能,单点故障不影响服务功能,且对外提供RPC和HTTPS接口获取访问OBS的临时认证凭据。
-
加固LDAP MRS集群中针对LDAP做了如下功能增强: LDAP配置文件中管理员密码使用SHA加密,当升级openldap版本为2.4.39或更高时,主备LDAP节点服务自动采用SASL External机制进行数据同步,避免密码信息被非法获取。 集群中的LDAP服务默认支持SSLv3协议,可安全使用。当升级openldap版本为2.4.39或更高时,LDAP将自动使用TLS 1.0以上的协议通讯,避免未知的安全风险。
-
加固Tomcat 在
FusionInsight Manager使用过程中,针对Tomcat基于开源做了如下功能增强: 升级Tomcat版本为官方稳定版本。 设置应用程序之下的目录权限为500,对部分目录支持写权限。 系统软件安装完成后自动清除Tomcat安装包。 应用程序目录下针对工程禁用自动部署功能,只部署了web、cas和client三个工程。 禁用部分未使用的HTTP方法,防止被他人利用攻击。 更改Tomcat服务器默认shutdown端口号和命令,避免被黑客捕获利用关闭服务器,降低对服务器和应用的威胁。 出于安全考虑,更改“maxHttpHeaderSize”的取值,给服务器管理员更大的可控性,以控制客户端不正常的请求行为。 安装Tomcat后,修改Tomcat版本描述文件。 为了避免暴露Tomcat自身的信息,更改Connector的Server属性值,使攻击者不易获知服务器的相关信息。 控制Tomcat自身配置文件、可执行文件、日志目录、临时目录等文件和目录的权限。 关闭会话facade回收重用功能,避免请求泄漏风险。 CookieProcessor使用LegacyCookieProcessor,避免cookie中的敏感数据泄漏。
-
监控安全风险 MRS的Manager界面提供集群级别的监控能力,帮助用户监控集群中大数据组件和节点的健康状态,同时提供告警通知能力,用户可以实时掌握MRS集群的各项指标、健康度。 MRS支持将集群中所有部署角色的节点,按管理节点、控制节点和数据节点进行分类,分别计算关键主机监控指标在每类节点上的变化趋势,并在报表中按用户自定义的周期显示分布曲线图。MRS集群指标监控采用周期性监控,历史监控平均周期约为5分钟。 用户可在MRS管理控制台或者Manager界面中查看集群整体的资源概况。 更多详情请参见查看和定制集群监控指标和管理组件和主机监控。 父主题: 安全
-
日志 MRS集群所有组件日志(如HDFS服务全部日志)支持通过主机接入的方式对接
云日志 服务。云日志服务(LTS)用于收集来自主机和云服务的日志数据,通过海量日志数据的分析与处理,可以将云服务和应用程序的可用性和性能最大化,为您提供实时、高效、安全的日志处理能力,帮助您快速高效地进行实时决策分析、设备运维管理、用户业务趋势分析等。具体对接指导请参见MRS服务如何对接云日志服务。 同时FusionInsight Manager支持在线检索并显示组件的日志内容,用于问题定位等其他日志查看场景,详细操作指导请参见在线检索日志。FusionInsight Manager支持批量导出各个服务角色所有实例生成的日志,无需手工登录单个节点获取,详细操作指导请参见下载日志。