MAPREDUCE服务 MRS-MRS多租户简介:多租户资源概述
多租户资源概述
MRS 集群的资源分为计算资源和存储资源。多租户可实现资源的隔离。
- 计算资源
计算资源包括CPU和内存。租户之间不可以相互占用计算资源,私有计算资源独立。
计算资源可分为静态服务资源和动态资源:
大数据集群为Yarn分配的资源是静态服务资源,可以由Yarn动态分配给任务队列计算使用。
- 静态服务资源
静态服务资源是集群分配给各个服务的计算资源,每个服务的计算资源总量固定,不与其他服务共享,是静态的。这些服务包括Flume、HBase、HDFS和Yarn。
- 动态资源
Yarn是大数据集群中的分布式资源管理服务,大数据集群为Yarn分配资源,资源总量可配置。Yarn内部为任务队列进一步分配和调度计算资源。对于MapReduce、Spark、Flink和Hive的任务队列,计算资源完全由Yarn来分配和调度。
Yarn任务队列是计算资源分配的基本单位。
对于租户,通过Yarn任务队列申请到的资源是动态资源。用户可以动态创建并修改任务队列的配额,可以查看任务队列的使用状态和使用统计。
- 资源池:
现代企业IT经常会面对纷繁复杂的集群环境和上层需求。例如以下业务场景:
- 集群异构,集群中各个节点的计算速度、存储容量和网络性能存在差异,需要把复杂应用的所有任务按照需求,合理地分配到各个计算节点上。
- 计算分离,多个部门需要数据共享,但是需要把计算完全分离在不同的计算节点上。
这就要求对计算资源的节点进一步分区。
资源池用来指定动态资源的配置。Yarn任务队列和资源池关联,可实现资源的分配和调度。
一个租户只能设置一个默认资源池。用户通过绑定租户相关的角色,来使用该租户资源池的资源。若需要使用多个资源池的资源,可通过绑定多个租户相关的角色实现。
- 动态资源调度机制:
Yarn动态资源支持标签调度(Label Based Scheduling)策略,此策略通过为计算节点(Yarn NodeManager)创建标签(Label),将具有相同标签的计算节点添加到同一个资源池中,Yarn根据任务队列对资源的需求,将任务队列和有相应标签的资源池动态关联。
例如,集群中有40个以上的节点,根据各节点的硬件和网络配置,分别用Normal、HighCPU、HighMEM、HighIO为四类节点创建标签,添加到四个资源池中,资源池中的各节点性能如表3所示。
表3 不同资源池中的各节点性能 标签名
节点数
硬件和网络配置
添加到
关联
Normal
10
一般
资源池A
普通的任务队列
HighCPU
10
高性能CPU
资源池B
计算密集型的任务队列
HighMEM
10
大量内存
资源池C
内存密集型的任务队列
HighIO
10
高性能网络
资源池D
IO密集型的任务队列
任务队列只能使用所关联的资源池里的计算节点。
- 普通的任务队列关联资源池A,使用硬件和网络配置一般的Normal节点。
- 计算密集型的任务队列关联资源池B,使用具有高性能CPU的HighCPU节点。
- 内存密集型的任务队列关联资源池C,使用具有大量内存的HighMEM节点。
- IO密集型的任务队列关联资源池D,使用具有高性能网络的HighIO节点。
Yarn任务队列与特定的资源池关联,可以更有效地使用资源,保证节点性能充足且互不影响。
FusionInsight Manager中最多支持添加50个资源池。系统默认包含一个默认资源池。
- 资源池:
- 静态服务资源
- 存储资源
存储资源包括磁盘或第三方存储系统。租户之间不可以相互访问数据,私有存储资源独立。
HDFS是大数据集群中的分布式文件存储服务,存放大数据集群上层应用的所有用户数据,例如写入HBase表或Hive表的数据。
目录是HDFS存储资源分配的基本单位。HDFS支持传统的层次型文件组织结构。用户或者应用程序可以创建目录,在目录中创建、删除、移动或重命名文件。租户通过指定HDFS文件系统的目录来获取存储资源。
存储资源调度机制如下:
- 系统支持将HDFS目录存储到指定标签的节点上,或存储到指定硬件类型的磁盘上。例如以下业务场景:
- 实时查询与数据分析共集群时,实时查询只需部署在部分节点上,其数据也应尽可能的只存储在这些节点上。
- 关键数据根据实际业务需要保存在具有高度可靠性的节点中。
- 管理员可以根据实际业务需要,通过数据特征灵活配置HDFS数据存储策略,将数据保存在指定的节点上。
- 对于租户,存储资源是各租户所占用的HDFS资源。可以通过将指定目录的数据存储到租户配置的存储路径中,实现存储资源调度,保证租户间的数据隔离。
- 用户可以添加/删除租户HDFS存储目录,设置目录的文件数量配额和存储空间配额来管理存储资源。
- 系统支持将HDFS目录存储到指定标签的节点上,或存储到指定硬件类型的磁盘上。例如以下业务场景: