华为云MapReduce服务MRS对接使用完全指南:从集群创建到存算分离与安全管理
1. MRS服务概述与核心组件
华为云MapReduce服务MRS是业界领先的企业级大数据集群云服务,提供Hadoop、Hive、Spark、HBase、Flink、Presto等开源组件的全托管部署。MRS将大数据平台从物理机部署升级为云原生架构,用户无需关心底层服务器运维、补丁升级和硬件故障,只需聚焦业务数据处理与分析逻辑。
MRS集群组件生态覆盖数据存储、计算引擎、数据仓库、流处理、交互式查询等完整链路。HDFS提供分布式文件存储,YARN负责资源管理与调度,Hive构建数据仓库并提供类SQL的HQL查询,Spark支持内存计算加速,HBase提供NoSQL实时读写,Flink实现流批一体计算,Presto支撑高并发交互式查询。MRS 3.x版本集成Guardian组件,用于存算分离场景的统一权限管理。
MRS支持普通模式与Kerberos认证模式。开启Kerberos的集群具备更高安全性,所有组件间通信和用户访问均需通过Kerberos票据认证,适用于金融、政务等对数据安全要求严格的场景。
需要先登录华为云控制台,点击:华为云控制台,还没有账号,点击:注册并关联,已有账号点击:登录后关联
2. MRS集群创建与网络规划
2.1 集群创建流程
登录MRS管理控制台,单击“创建集群”,选择“MapReduce Service”并单击“立即申请”,进入集群创建配置页面。MRS提供“快速购买”和“自定义购买”两种模式。快速购买适用于标准场景,系统自动推荐组件组合和规格;自定义购买允许精细控制每一配置项,包括组件选择、节点规格、磁盘类型、网络配置、安全策略等。生产环境强烈建议使用自定义购买。
集群创建需关注以下核心配置:
- 计费模式:包年/包月适用于长期稳定运行,按需计费适用于短期测试或弹性扩展
- 集群版本:MRS 3.x版本支持存算分离、Guardian、Ranger细粒度权限等新特性
- 安全模式:开启Kerberos认证提升安全性
- 组件选择:根据业务勾选Hadoop、Hive、Spark、HBase、Flink、Presto等
- 虚拟私有云VPC与子网:决定网络隔离范围和内网互通能力
- 安全组:控制进出集群的网络流量
2.2 网络规划要点
MRS集群部署在VPC内部,合理网络规划是后续数据迁移、跨服务对接的基础。集群节点通过VPC子网互通,与外部服务(如OBS、RDS、CDM、DataArts Studio)的连通性取决于VPC对等连接、安全组规则和网络ACL配置。
关键网络规划原则:
- MRS集群与OBS并行文件系统建议部署在同一Region
- 数据迁移场景下,CDM集群与MRS集群建议在同一VPC和子网,默认内网互通
- 从集群外节点安装客户端需确保该节点与集群内节点网络互通
- 访问MRS集群Manager需配置弹性公网IP或通过VPN/专线打通网络
- 安全组入方向规则需放通必要端口(如Hive Metastore 9083、HDFS NameNode 8020等)
3. MRS客户端安装与配置
MRS客户端是与集群交互的核心工具,用户通过客户端提交作业、管理资源、查看状态。客户端将作业请求发送给集群,集群执行后返回结果和状态。
3.1 客户端安装方式
MRS客户端可安装在集群内节点或集群外节点。安装方式分为两种:
- 完整客户端安装:包含完整客户端软件包及配置文件,适用于大多数场景
- 仅配置文件下载:仅下载客户端配置文件,适用于完整客户端已下载后的配置更新场景
集群内节点安装客户端的典型流程:
- 登录MRS管理控制台,单击“现有集群”进入集群列表
- 单击目标集群名称进入集群信息页面
- 单击“集群管理页面”后的“前往Manager”,配置弹性公网IP后登录Manager界面
- 在Manager页面下载客户端:MRS 3.3.0之前版本在“集群 > 概览”页面选择“更多 > 下载客户端”;MRS 3.3.0及之后版本在Manager“主页”中单击“下载客户端”
- 将客户端软件包传输到目标安装节点,解压并执行安装脚本
客户端安装约束:待安装节点必须启用NTP服务并保持与MRS集群服务端时间一致;安装用户需对客户端文件存放目录和安装目录具有操作权限(建议755)。
3.2 客户端配置更新
通过Manager界面修改服务端配置或系统升级后,建议重新安装客户端,否则客户端与服务端版本不一致可能影响部分功能。当服务端配置参数变更后,可通过下载“仅配置文件”的方式快速更新已有客户端配置,无需重新安装完整客户端。操作流程:在Manager界面选择“集群 > 服务 > 服务名称 > 更多 > 下载客户端”,选择“仅配置文件”类型,将生成的配置文件替换到客户端安装目录对应位置。
4. MRS数据连接管理
MRS数据连接用于管理集群中组件使用的外部源连接。典型场景如Hive元数据使用外部关系型数据库(RDS for MySQL或PostgreSQL),通过数据连接关联Hive组件实现元数据外置。
4.1 本地元数据与外置数据连接
MRS提供两种元数据存储模式:
- 本地元数据:元数据存储于集群内本地GaussDB中,集群删除时元数据同时删除,如需保存需提前手动导出
- 外置数据连接:可选择关联与当前集群同一VPC和子网的LakeFormation服务或RDS实例,元数据存储于外部,不随集群删除而丢失,多个MRS集群可共享同一份元数据
创建数据连接操作:登录MRS控制台,导航栏选择“数据连接”,单击“新建数据连接”,配置相关参数后单击“确定”。配置LakeFormation数据连接需参考LakeFormation对接MRS相关操作。
4.2 元数据外置的存算分离集群实践
对于MRS 3.3.0-LTS及之后版本,支持将Hive和Ranger元数据外置到RDS for MySQL数据库,同时配置存算分离。实践流程:
- 创建MRS集群:创建包含Guardian、Hive、Ranger、Spark组件的MRS集群
- 创建并配置RDS实例:购买RDS MySQL实例,确保与MRS集群在同一VPC和子网,安全组入方向放通MySQL默认端口3306
- 配置MRS数据连接及Guardian对接OBS:配置Hive和Ranger数据连接,配置Guardian组件对接OBS
- 元数据外置验证:验证Hive和Ranger元数据是否成功外置到RDS MySQL数据库
创建RDS实例注意:为保证集群和MySQL数据库的网络访问,建议该实例与MRS集群的VPC和子网一致;RDS安全组入方向规则需放通MySQL默认端口3306。
5. 存算分离架构:MRS对接OBS
存算分离是MRS核心能力,用户将数据存储在OBS,MRS集群仅作计算处理,实现按需灵活扩展资源、低成本海量数据分析。MRS 1.9.2及之后版本支持使用obs://方式对接OBS,当前主要支持Hadoop、Hive、Spark、Presto、Flink组件。HBase暂不支持obs://方式。
5.1 基于IAM委托的对接方式(推荐)
MRS通过IAM“委托”机制简单配置,实现ECS自动获取临时AK/SK访问OBS,避免永久AK/SK直接暴露在配置文件中。集群的Hadoop、Hive、Spark、Presto、Sqoop、Flink、Flume组件支持该功能。
配置步骤:
- 创建具有访问OBS权限的ECS委托:在IAM服务中创建委托,委托类型选择“云服务”,云服务选择“弹性云服务器ECS 裸金属服务器BMS”,策略勾选“OBS OperateAccess”。若OBS并行文件系统配置KMS加密,同时勾选“KMS Administrator”策略
- 创建存算分离集群:在购买MRS集群时,在委托配置中选择已创建的委托
- 为已有集群绑定委托:在集群详情页的“委托”配置中绑定已创建的委托
- 大数据存算分离场景务必使用OBS并行文件系统,使用普通对象桶会对集群性能产生较大影响
- 为提高数据写入性能,可在Manager页面修改对应服务配置参数“fs.obs.buffer.dir”的值为数据盘目录
- MRS 3.2.0-LTS.1及后续版本中,集群内组件默认支持数据防误删策略,删除的文件数据会保存到OBS回收站目录中,需配置定时自动清理策略以节省存储空间
- 配置文件中包含认证密码信息可能存在安全风险,建议使用完毕后删除相关配置文件或加强安全管理
- 命令中携带认证密码信息时,建议执行前关闭系统的history命令记录功能,避免信息泄露
- 完成Hive基于Metastore方式对接OBS的相关配置
- 登录FusionInsight Manager,选择“集群 > 服务 > Spark > 配置 > 全部配置”
- 在“SparkResource > 自定义”中添加“spark.sql.warehouse.location.first = true”
- 在“JDBCServer > 自定义”中添加相同配置
- 保存配置,重启Spark服务
- 重新下载并安装Spark客户端
- 在MRS Hive上创建Hive分区表:在MRS Hive客户端执行建表SQL,创建与源表结构对应的Hive分区表
- 创建CDM集群并绑定EIP:按待迁移数据量选择CDM集群规格(一般cdm.medium即可满足大部分场景)
- 创建CDM连接:分别创建源端MySQL连接和目的端MRS Hive连接
- 创建CDM作业:配置迁移任务,选择源表和目标表,设置字段映射关系
- 启动作业:执行迁移任务,监控迁移进度和状态
- MRS集群和LakeFormation实例必须同在一个云账户下且属于同一Region
- LakeFormation侧创建的接入客户端所在VPC必须与MRS集群在同一VPC下
- MRS集群仅支持对接LakeFormation实例中名称为hive的Catalog
- MRS存量集群需先完成元数据库和权限策略向LakeFormation实例迁移,再配置对接
- 如需迁移多个MRS集群元数据到同一LakeFormation实例,MRS集群之间的Database名称不能重复
MRS在IAM委托列表中预置了MRS_ECS_DEFAULT_AGENCY委托,该委托拥有对象存储服务的MRS Agency OBSAccess权限,可直接在集群创建过程中选择使用。
5.2 基于AKSK的对接方式
通过在MRS集群中配置AK/SK信息也可实现OBS对接,但AK/SK会明文暴露在配置文件中,存在安全风险,建议谨慎使用。
Hadoop访问OBS配置:在HDFS客户端“客户端安装目录/HDFS/hadoop/etc/hadoop/core-site.xml”文件中增加以下内容:
<property>
<name>fs.obs.access.key</name>
<value>您的AK</value>
</property>
<property>
<name>fs.obs.secret.key</name>
<value>您的SK</value>
</property>
<property>
<name>fs.obs.endpoint</name>
<value>OBS Endpoint地址</value>
</property>如果使用distcp等需要提交作业到Yarn的命令,需在MRS客户端的Yarn目录($client_home/Yarn/config)中同步修改core-site.xml文件。
配置完成后,无需手动添加AK/SK和Endpoint即可直接访问OBS数据:
hadoop fs -ls 'obs://您的桶名/路径/'Hive访问OBS配置:登录FusionInsight Manager页面,选择“集群 > 服务 > Hive > 配置”,将“基础配置”切换为“全部配置”,搜索“fs.obs.access.key”和“fs.obs.secret.key”参数并分别配置为OBS的AK和SK。
Spark访问OBS配置:在FusionInsight Manager中选择“集群 > 服务 > Spark > 配置 > 全部配置”,在左侧导航列表中选择“SparkResource > 自定义”,给参数“custom”添加配置项“spark.sql.warehouse.location.first”,设置值为“true”。同时在“JDBCServer > 自定义”中做相同配置。保存配置后重启Spark服务。
Spark重启成功后,需重新下载并安装Spark客户端。若不重新安装,则需手动更新客户端配置文件:修改Spark客户端配置文件目录下的“hive-site.xml”,将“hive.metastore.warehouse.dir”的值修改为对应的OBS路径:
<property>
<name>hive.metastore.warehouse.dir</name>
<value>obs://您的桶名/user/hive/warehouse/</value>
</property>同时修改“spark-defaults.conf”添加“spark.sql.warehouse.location.first = true”配置。
5.3 存算分离最佳实践要点
6. Spark与Hive对接OBS实战操作
6.1 Spark基于Guardian对接OBS
完成Guardian对接OBS后,即可在Spark客户端创建Location为OBS路径的表。MRS集群支持Spark服务在创建表时指定Location为OBS文件系统路径,也支持基于Hive Metastore方式对接OBS。
建表时指定Location为OBS路径示例:
CREATE TABLE spark_obs_table (
id INT,
name STRING,
age INT
)
USING parquet
LOCATION 'obs://您的桶名/spark/warehouse/spark_obs_table';配置Spark基于Hive Metastore方式对接OBS步骤:
6.2 Hive对接OBS配置
Hive对接OBS后,数据仓库存储路径从HDFS迁移到OBS,实现计算与存储分离。配置完成后,Hive创建表语句可直接指定OBS路径:
CREATE EXTERNAL TABLE hive_obs_table (
user_id STRING,
event_time TIMESTAMP,
event_type STRING
)
PARTITIONED BY (dt STRING)
STORED AS PARQUET
LOCATION 'obs://您的桶名/hive/warehouse/hive_obs_table';Hive对接OBS后,分区表管理方式与HDFS模式完全一致,数据实际存储在OBS并行文件系统中,计算在MRS集群中完成。
7. MRS数据迁移与集成
7.1 CDM云数据迁移服务
云数据迁移CDM是一种高效、易用的批量数据迁移服务,围绕大数据迁移上云和智能数据湖解决方案,提供简单易用的迁移能力和多种数据源到数据湖的集成能力。CDM支持表/文件迁移(适用于数据入湖和数据上云场景下的表或文件级别数据迁移)和整库迁移(适用于离线或自建数据库整体迁移)。
使用CDM迁移MySQL数据至MRS Hive典型流程:
创建MRS Hive连接器时注意:已获取MRS集群Manager IP、管理员账号和密码,且该账号拥有数据导入、导出的操作权限。
7.2 Loader数据导入工具
Loader是实现MRS与外部数据源(如关系型数据库、SFTP服务器、FTP服务器)之间交换数据和文件的ETL工具。Loader支持将数据或文件从关系型数据库或文件系统导入到MRS服务中。MRS集群连接包含HBase连接、HDFS连接和Hive连接,是Loader与对应各数据进行数据交换的通道。配置MRS集群连接时,需设置名称、选择对应的连接器“hbase-connector”、“hdfs-connector”或“hive-connector”。
7.3 DataArts Studio数据治理
DataArts Studio是华为云数据治理中心平台,可与MRS Hive等数据湖底座建立连接,实现数据集成、数据开发、数据质量、数据资产等全链路数据治理能力。
新建DataArts Studio与MRS Hive数据湖连接注意事项:在创建数据连接前需确保已创建所要连接的数据湖;建议创建MRS集群时,相关网络参数与DataArts Studio实例中的CDM集群的所在区域、VPC、子网、安全组保持一致,默认内网互通;企业项目也应保持一致。
特别需要注意的是,当前DataArts Studio不支持对接“Kerberos加密类型”为“aes256-sha2,aes128-sha2”的MRS集群,如需对接,Kerberos加密类型应为“aes256-sha1,aes128-sha1”。
8. MRS安全管理最佳实践
8.1 Ranger细粒度权限控制
Ranger是MRS集群的集中式权限管理框架,支持对Hive、HBase、HDFS、Spark等组件进行细粒度的访问权限控制。管理员只需在Ranger页面针对Hive库/表创建一次授权策略,系统会自动识别表对应的存储源(HDFS/OBS)路径,并生成细粒度的存储源访问权限,用户无需感知底层存储路径,也无需进行二次授权。配置Guardian服务启用Ranger OBS路径鉴权后,MRS集群支持通过Ranger配置组件关于OBS相关路径的权限策略。
Ranger权限配置基本流程:使用Ranger管理员用户rangeradmin登录Ranger管理页面,在“Service Manager”区域内单击组件名称下的权限插件名称,进入组件安全访问策略列表页面,单击“Add New Policy”添加权限控制策略。
8.2 Kerberos认证与集群安全模式
开启Kerberos认证的MRS集群具备更高安全性。在Kerberos模式下,所有组件间通信和用户访问均需通过Kerberos票据认证,有效防止未授权访问和中间人攻击。MRS集群部署在VPC内,合理配置安全组可确保集群资源不被外部恶意访问,减小暴露面。安全组应遵循最小权限原则,仅放通业务必需的端口和IP范围。
8.3 KMS数据加密
MRS可与云上数据加密服务KMS对接,实现HDFS透明加密。为提升用户数据安全性,建议开启数据盘加密,磁盘数据会加密成密文后存储,降低数据泄露风险。自定义购买MRS集群时,可在“MRS集群其他配置”的“数据盘加密”部分进行配置。
8.4 SQL防御规则
MRS提供SQL防御能力,系统会对触发规则的SQL请求进行提示、拦截或阻断操作。使用具有Manager界面管理权限的用户登录MRS集群Manager界面,选择“集群 > SQL防御”即可配置防御规则。
9. LakeFormation统一元数据管理
LakeFormation是华为云数据湖构建服务,支持对接MapReduce服务MRS,实现元数据统一管理、元数据与文件目录联动授权、对接多计算引擎等功能。MRS集群对接LakeFormation后,多服务/多集群均使用统一元数据,最大化实现数据共享,避免不必要的数据拷贝。
对接LakeFormation注意事项:
MRS集群对接LakeFormation后,LakeFormation服务中的相关数据湖权限策略及角色信息会自动同步至MRS Ranger。对于MRS集群内的用户,可通过关联至对应Ranger角色后获取对应资源的访问权限。
创建MRS集群时配置LakeFormation数据连接:在MRS 3.3.0-LTS或之后版本集群创建过程中配置LakeFormation数据连接。配置完成后还需配置MRS集群组件的存算分离,才可正常使用LakeFormation统一的数据湖元数据及权限管理。
10. MRS API与开发指南
MRS服务提供完整的REST API,支持对MRS服务进行创建集群、删除集群、调整集群节点、创建作业并执行等操作。在调用MRS服务API之前,需确保已充分了解MRS服务相关概念。
MRS API请求的组成包括请求URI、请求方法、请求头和请求体。调用API时需先通过IAM服务获取Token用于鉴权。MRS API参考提供各接口详细说明,建议优先使用创建集群V2接口和创建集群并提交作业V2接口。
MRS样例代码库提供各组件基本功能样例工程,涵盖Hadoop MapReduce、Hive、Spark、ClickHouse等组件。样例工程适用于具备Java开发经验的开发人员,可帮助快速上手各组件的应用开发。开发环境准备包括将样例工程导入IntelliJ IDEA开发环境。
更多编程语言的SDK代码示例可通过API Explorer的代码示例页签获取,可生成自动对应的SDK代码示例。
常见问题解答
问:MRS集群创建后,如何快速验证与OBS的连通性?
答:在已安装MRS客户端的节点上执行hadoop fs -ls 'obs://您的桶名/'命令,如果能够正常列出桶内文件列表,则说明MRS与OBS连通性正常。如果报错,请检查AK/SK配置或IAM委托绑定是否正确。
问:存算分离模式下,数据存储在OBS中是否会影响计算性能?
答:OBS并行文件系统提供高带宽和大容量能力,与Hadoop计算引擎深度集成。对于大部分批处理和分析场景,性能影响在可接受范围内。建议配置时设置合理的fs.obs.buffer.dir参数到数据盘目录以提升写入性能。
问:MRS集群的元数据外置到RDS后,删除集群会影响RDS中的数据吗?
答:不会。外置数据连接的元数据存储于RDS实例中,不随MRS集群删除而删除。多个MRS集群可共享同一份元数据,即使集群被删除,元数据依然保留在RDS中。
问:如何实现MRS集群的跨集群数据迁移?
答:推荐使用华为云CDM服务进行跨集群数据迁移。CDM支持将IDC机房或其他公有云Hive集群中的数据迁移到华为云MRS服务。对于HDFS文件级别的迁移,也可使用Hadoop自带的distcp命令进行跨集群复制。
问:MRS集群的安全组应该如何配置?
答:安全组配置应遵循最小权限原则。通常需要放通集群内节点间通信的端口(如HDFS 8020/9000、YARN 8032/8088、Hive 9083/10000等),以及从客户端访问集群的端口。不建议开放22端口(SSH)到公网,应通过VPN或跳板机进行管理。
问:MRS集群如何对接DataArts Studio进行数据治理?
答:在DataArts Studio中创建MRS Hive数据连接即可。需确保MRS集群与DataArts Studio实例的CDM集群在同一VPC和子网。注意Kerberos加密类型需为“aes256-sha1,aes128-sha1”。连接成功后即可使用DataArts Studio的数据集成、数据开发、数据质量等功能进行数据治理。


