
# MRS存算分离概述
MRS支持用户将数据存储在OBS服务中，使用MRS集群仅作数据计算处理的存算分离模式，从而实现按需灵活扩展资源、提供低成本的海量数据分析方案。
- MRS 3.3.0-LTS及之后版本推荐使用基于Guardian组件对接OBS，为HDFS、Hive、Spark、Loader、HetuEngine等服务提供访问OBS的临时认证凭据。
  - 配置Guardian服务不启用Ranger OBS路径鉴权功能，具体操作请参考[配置Guardian服务不启用Ranger OBS路径鉴权](https://support.huaweicloud.com/usermanual-mrs/mrs_01_300579.html)。
  
  - 配置Guardian服务启用Ranger OBS路径鉴权及级联授权功能，具体操作请参考[配置Guardian服务启用Ranger OBS路径鉴权](https://support.huaweicloud.com/usermanual-mrs/mrs_01_300419.html)。
   
- MRS集群还支持使用IAM委托方式对接OBS，具体操作请参考[配置MRS集群通过IAM委托对接OBS](https://support.huaweicloud.com/usermanual-mrs/mrs_01_249279.html)。
#### MRS存算分离方案介绍
MRS集群中的数据默认存储在本地（如磁盘或HDFS）中，用于进行实时计算、流批处理和交互式分析等操作的数据都是直接从集群本地存储读取，操作完成后再存储到本地中，即存算一体。
由于业务发展与数据不断膨胀，存算一体方案会存在一些问题，例如，本地磁盘资源成本开销大、集群整体的计算资源和存储资源无法均衡变化、Hadoop分布式系统默认使用三副本保存数据会造成磁盘空间和单盘利用率较低。因此MRS服务提供了以对象存储服务OBS为载体的存算分离方案，在大数据存储容量大、计算资源需要弹性扩展的场景下，用户可以将数据存储在OBS分布式并行文件系统中，使用MRS集群仅作数据计算处理，从而实现按需灵活扩展资源、低成本的海量数据分析方案。
图1MRS存算分离方案   
![](https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002366340182.png "点击放大")
MRS存算分离方案基于对象存储服务OBS的大容量高带宽能力，实现了与Hadoop生态中的多种计算引擎（例如Hive、Spark等）的兼容对接，相比传统企业在本地IDC机房部署大数据业务，MRS存算分离方案具有融合高效、资源利用率高、成本低的特点。
关于HDFS原理介绍请参见[HDFS基本原理](https://support.huaweicloud.com/productdesc-mrs/mrs_08_000701.html)，关于OBS原理介绍请参见[对象存储服务](https://support.huaweicloud.com/productdesc-obs/zh-cn_topic_0045829060.html)。
#### 约束与限制
- 大数据存算分离场景，请务必使用OBS并行文件系统（[并行文件系统](https://support.huaweicloud.com/usermanual-obs/obs_13_0007.html)），使用普通对象桶会对集群性能产生较大影响。
- 当集群已对接了OBS（存算分离或者冷热分离场景），若需要删除组件或者MRS集群，需要在删除组件或者集群后，手工将OBS上相关的业务数据进行删除。
- MRS集群配置存算分离后，组件可以对接访问OBS文件系统，同时也可以继续访问集群内的HDFS文件系统，具体请参考[配置MRS集群通过IAM委托对接OBS](https://support.huaweicloud.com/usermanual-mrs/mrs_01_249279.html)或[配置MRS集群通过Guardian对接OBS](https://support.huaweicloud.com/usermanual-mrs/mrs_01_248986.html)。
- 基于Guardian存算分离管理面作业提交依赖JobGateway模式，不支持Executor模式。
- 由于OBS的[多段上传](https://support.huaweicloud.com/usermanual-obs/obs_41_0021.html)机制，写入数据到OBS的任务中断或失败时，会在OBS中产生OBS文件碎片，碎片会在OBS中产生存储费用，因此必须配置对应目录的生命周期策略以避免增加存储成本，详细说明请参见[清理碎片](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829110.html)。
- 配置集群使用存算分离方案后，必须配置相关目录的生命周期策略，否则会有存储空间被占满以及增加存储资源费用的风险，关于OBS更多计费说明请参考[OBS计费概述](https://support.huaweicloud.com/price-obs/obs_42_0001.html)。
 
#### 视频介绍
<video controls="controls" preload="none" id="object69446232110" class="idp-external-video" src="https://res-static.hc-cdn.cn/cloudbu-site/china/zh-cn/support/mrs-video/1722518276902389219.mp4" title="MRS集群存算分离方案" poster="https://support.huaweicloud.com/usermanual-mrs/zh-cn_image_0000002386142609.jpg" height="300.0000" width="600.0000"></video>
#### 基于Guardian服务的存算分离配置流程
![](https://support.huaweicloud.com/usermanual-mrs/public_sys-resources/notice_3.0-zh-cn.png)
- 如果需要通过Ranger配置组件关于OBS相关路径的权限策略，即配置Guardian服务启用Ranger OBS路径鉴权功能，请参考[配置Guardian服务启用Ranger OBS路径鉴权](https://support.huaweicloud.com/usermanual-mrs/mrs_01_300419.html)，OBS权限配置说明请参见[基于Guardian服务的OBS权限配置说明]。
- 如果不需要通过Ranger配置组件关于OBS相关路径的权限策略，仅配置Guardian对接OBS，请参考[配置Guardian服务不启用Ranger OBS路径鉴权](https://support.huaweicloud.com/usermanual-mrs/mrs_01_300579.html)。
 
1. 创建MRS集群。 MRS集群内需包含Guardian、Ranger、Hadoop等基础组件。
   目前仅MRS 3.3.0-LTS及之后的版本支持基于Guardian组件对接OBS。
   
2. 创建OBS委托。 用户需要创建1个具有OBS访问权限的委托，用于Guardian组件对接OBS时使用。
   
3. 开启Guardian组件对接OBS开关并配置组件。 修改Guardian服务相关配置参数，配置IAM委托认证信息，为其他组件提供访问OBS的临时认证凭据、细粒度权限控制的能力。
   
4. 配置组件数据回收站目录的清理策略。 在存算分离场景下，对接OBS的组件默认开启了数据防误删功能，用户删除数据时，被删除对象会移动至用户对应的回收站目录内，用户需要在OBS文件系统中为对应的目录配置生命周期策略，以避免存储空间被占满的风险。
   
5. 组件对接OBS。
6. 在具备OBS资源的访问权限后，MRS集群内组件可直接访问对应路径。用户可以通过组件客户端以绝对路径方式直接访问OBS文件系统下的资源。
 
#### 基于IAM委托的存算分离配置流程
1. 创建具有访问OBS权限的ECS委托。 用户需要创建1个具有访问OBS权限的ECS委托，实现使用ECS自动获取的临时AK/SK来访问OBS。
   
2. 创建MRS存算分离集群。
   - 新建存算分离集群 创建一个MRS集群并绑定ECS委托，根据实际需求添加所需组件，支持通过IAM委托对接OBS的组件包括Hadoop、Hive、Spark、Presto、Flink、Flume、Hudi、Sqoop。
     
   
   - 为已有集群配置存算分离功能 为已有集群绑定ECS委托实现存算分离功能。
     
    
3. 创建OBS文件系统。
   用户需要创建用于存放集群数据的OBS并行文件系统。
   
4. 配置组件数据回收站目录的清理策略。 在存算分离场景下，对接OBS的组件默认开启了数据防误删功能，用户删除数据时，被删除对象会移动至用户对应的回收站目录内，用户需要在OBS文件系统中为对应的目录配置生命周期策略，以避免存储空间被占满的风险。
   
5. 组件对接OBS。
6. 在具备OBS资源的访问权限后，MRS集群内组件可直接访问对应路径。用户可以通过组件客户端以绝对路径方式直接访问OBS文件系统下的资源。
 
 #### 基于Guardian服务的OBS权限配置说明
基于Guardian服务的存算分离场景下，对于开启了Ranger鉴权的MRS集群，Ranger管理员可以通过Ranger为集群用户配置OBS目录或文件的读、写权限。
同时，基于Guardian权限模型存算分离，可使用Hive级联授权功能，实现用户基于Ranger对业务表授权，自动细粒度关联OBS对应存储目录的权限，无需二次授权，即用户只需在Ranger页面上对业务表进行一次授权，系统就会自动细粒度关联数据存储源的权限，不需要感知表的存储路径，无需进行二次授权。
- 对接OBS后，如需通过Ranger配置组件关于OBS相关路径的权限策略，需确保OBS服务已开启AccessLabel功能，若未开启，需手动开启，详细操作请联系OBS服务运维人员。
- Ranger页面OBS授权对象只能针对Manager中自定义的用户组，内置用户组不支持，用户组仅由数字0\~9、字母a\~Z、下划线或#组成，且最大长度为52个字符，否则将导致策略添加失败。
- 启用Kerberos认证的集群需要基于Ranger赋权，未启用Kerberos认证的集群默认拥有OBS权限，无需额外配置。
 
