MAPREDUCE服务 MRS-配置HDFS文件目录标签策略(NodeLabel):配置场景
配置场景
用户需要通过数据特征灵活配置HDFS文件数据块的存储节点。通过设置HDFS目录/文件对应一个标签表达式,同时设置每个DataNode对应一个或多个标签,从而给文件的数据块存储指定了特定范围的DataNode。
当使用基于标签的数据块摆放策略,为指定的文件选择DataNode节点进行存放时,会根据文件的标签表达式选择出DataNode节点范围,然后在这些DataNode节点范围内,选择出合适的存放节点。
本章节适用于 MRS 3.x及后续版本。
- 场景1 DataNodes分区场景。
用户需要让不同的应用数据运行在不同的节点,分开管理,就可以通过标签表达式,来实现不同业务的分离,指定业务存放到对应的节点上。
通过配置NodeLabel特性使得:
- /HBase下的数据存储在DN1、DN2、DN3、DN4节点上。
- /Spark下的数据存储在DN5、DN6、DN7、DN8节点上。
- 通过hdfs nodelabel -setLabelExpression -expression 'LabelA[fallback=NONE]' -path /Hbase命令,给Hbase目录设置表达式。从图1中可知,“/Hbase”文件的数据块副本会被放置在有LabelA标签的节点上,即DN1、DN2、DN3、DN4。同理,通过hdfs nodelabel -setLabelExpression -expression 'LabelB[fallback=NONE]' -path /Spark命令,给Spark目录设置表达式。在“/Spark”目录下文件对应的数据块副本只能放置到LabelB标签上的节点,如DN5、DN6、DN7、DN8。
- 设置数据节点的标签参考配置描述。
- 如果同一个集群上存在多个机架,每个标签下可以有多个机架的DataNodes,以确保数据块摆放的可靠性。
- 场景2 多机架下指定副本位置场景
在异构集群中,需要分配一些特定的具有高可靠性的节点用以存放重要的商业数据,可以通过标签表达式指定副本位置,指定文件数据块的其中一个副本存放到高可靠性的节点上。
“/data”目录下的数据块,默认三副本情况下,其中至少有一个副本会被存放到RACK1或RACK2机架的节点上(RACK1和RACK2机架的节点为高可靠性节点),另外两个副本会被分别存放到RACK3和RACK4机架的节点上。
图2 场景样例
通过hdfs nodelabel -setLabelExpression -expression 'LabelA||LabelB[fallback=NONE],LabelC,LabelD' -path /data命令给“/data”目录设置表达式。
当向“/data”目录下写数据时,至少有一个数据块副本存放在LabelA或者LabelB标签的节点中,剩余的两个数据块副本会被存放在有LabelC和LabelD标签的节点上。
- MapReduce服务_什么是HDFS_HDFS特性
- MapReduce服务_如何使用MapReduce服务_MRS集群客户端安装与使用
- MRS备份恢复_MapReduce备份_数据备份
- MapReduce服务_什么是Hue_如何使用Hue
- MapReduce服务_什么是Loader_如何使用Loader
- MapReduce服务_什么是ZooKeeper_如何使用ZooKeeper
- MapReduce服务_什么是存算分离_如何配置MRS集群存算分离
- MapReduce服务_什么是MapReduce服务_什么是HBase
- MapReduce服务_什么是Flink_如何使用Flink
- 什么是Manager_Manager的功能_MRS运维管理