MAPREDUCE服务 MRS-配置HDFS NodeLabel:配置场景

时间:2024-04-10 09:06:31

配置场景

用户需要通过数据特征灵活配置HDFS文件数据块的存储节点。通过设置HDFS目录/文件对应一个标签表达式,同时设置每个DataNode对应一个或多个标签,从而给文件的数据块存储指定了特定范围的DataNode。

当使用基于标签的数据块摆放策略,为指定的文件选择DataNode节点进行存放时,会根据文件的标签表达式选择出DataNode节点范围,然后在这些DataNode节点范围内,选择出合适的存放节点。

开启单集群跨AZ高可用后,不支持配置HDFS NodeLabel功能。

  • 场景1 DataNodes分区场景。

    场景说明:

    用户需要让不同的应用数据运行在不同的节点,分开管理,就可以通过标签表达式,来实现不同业务的分离,指定业务存放到对应的节点上。

    通过配置NodeLabel特性使得:

    • /HBase下的数据存储在DN1、DN2、DN3、DN4节点上。
    • /Spark下的数据存储在DN5、DN6、DN7、DN8节点上。
    图1 DataNode分区场景
    • 通过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标签的节点上。

support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1676.html