其他分享
首页 > 其他分享> > 华为云FusionInsight MRS HDFS组件数据存储策略配置指导

华为云FusionInsight MRS HDFS组件数据存储策略配置指导

作者:互联网

操作场景

默认情况下,HDFS NameNode自动选择DataNode保存数据的副本。在实际业务中,可能存在以下场景:

对系统的影响

配置HDFS数据存储策略需要重启服务,服务重启时无法访问。

前提条件

配置DataNode使用分级存储

HDFS的异构分级存储框架提供了RAM_DISK、DISK、ARCHIVE、SSD四种存储类型的存储设备,以对应DataNode上可能存在的不同的存储介质。

通过对四种存储类型进行合理组合,即可形成适用于不同场景的存储策略。目前HDFS支持的存储策略如下表所示:

策略ID 名称 Block放置位置(副本数) 备选存储策略 副本的备选存储策略
15 LAZY_PERSIST RAM_DISK: 1, DISK: n-1 DISK DISK
12 All_SSD SSD: n DISK DISK
10 ONE_SSD SSD: 1, DISK: n-1 SSD, DISK SSD, DISK
7 HOT (default) DISK: n < none> ARCHIVE
5 WARM DISK: 1, ARCHIVE: n-1 ARCHIVE, DISK ARCHIVE, DISK
2 COLD ARCHIVE: n < none> < none>

以策略“15-LAZY_PERSIST”为例,如果Block副本数为3,配置了该策略的文件第1个Block副本将写入RAM_DISK,其余副本写入DISK。作为后备方案,如果第一个Block副本写入RAM_DISK类型存储介质失败,则尝试写入“备选存储策略”指定的存储类型;如果是第一个副本之外的其它副本写入失败,则尝试写入“副本的备选存储策略”指定的存储类型。

  1. 在FusionInsight Manager,选择“集群 > 待操作集群的名称 > 服务 > HDFS > 配置 > 全部配置”。
  2. 查看“dfs.storage.policy.enabled”的参数值是否为默认值“true”,如果不是,请修改为“true”。
  3. 修改“dfs.datanode.data.dir”的参数值。默认情况下系统认为数据保存的存储设备为DISK,此时需要根据实际存储设备的类型修改,参数值为“[存储设置类型]存储目录”,多个目录使用逗号隔开。修改效果如下:
“[RAM_DISK]/home/hadoop/dfs/ram,[SSD]/home/hadoop/dfs/ssd,/home/hadoop/dfs/hd,[ARCHIVE]/home/hadoop/dfs/archive”
  1. 修改“dfs.datanode.max.locked.memory”的参数值,该参数值必须大于“dfs.blocksize”的参数值,小于已挂载的RAM_DISK磁盘的空间大小。
  2. 单击“保存”,在“保存配置”中单击“确定”,保存完成后选择“更多 > 重启服务”,重启HDFS服务。界面提示“操作成功。”,单击“完成”,HDFS成功启动。
  3. 在HDFS客户端执行命令hdfs storagepolicies -setStoragePolicy -path < path> -policy < policy name>来指定特定路径的目录< path>,按照策略< policy name>进行分级存储例如,对根路径下test目录按照“LAZY_PERSIST”策略进行存储时,可执行如下命令:
hdfs storagepolicies -setStoragePolicy -path /test -policy LAZY_PERSIST

配置DataNode使用机架组存储

在实际业务中,关键数据根据实际业务需要保存在具有高度可靠性的节点中,此时DataNode组成了异构集群。通过修改DataNode的存储策略,系统可以将数据强制保存在指定的机架组中。

机架组表示多个机架的集合。配置此存储策略后关键数据将强制优先在此机架组的所有DataNode节点上保存副本数据。

使用约束

  1. 文件写入
  1. 由于副本数量的增加或数据块受损导致再次备份时,如果有一份以上的副本缺失或无法存放至强制机架组,将不会进行再次备份。系统将会继续尝试进行重新备份,直至强制组中有正常节点恢复可用状态。
  2. 如果对机架组策略进行了配置,Balancer将会在同一机架组内移动数据块。
  3. 如果对机架组策略进行了配置,Mover将会在同一机架组内移动数据块。
  4. 在写入文件时,节点的选择将严格按照存储策略进行,因此在附加存储类型与强制机架组副本存储类型相同的情况下,如在文件写入后或在删除过程中更改策略,只有强制组的副本不会被删除。

操作步骤

  1. 在FusionInsight Manager,单击“主机”。勾选指定的主机,选择“更多 > 设置机架”,在“设置机架”中填写新机架的名称。单击“确定”保存机架配置信息。
  2. 在FusionInsight Manager,选择“集群 > 待操作集群的名称 > 服务 > HDFS > 配置 > 全部配置”。
  3. 修改“dfs.block.replicator.classname”的参数值。默认值为“org.apache.hadoop.hdfs.server.blockmanagement.AvailableSpaceBlockPlacementPolicy”表示NameNode使用默认算法将数据副本保存到HDFS。
    选择“org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyWithRackGroup”,表示DataNode在保存数据时强制选择指定的机架组。
  4. 修改“dfs.use.dfs.network.topology”的参数值,设置为“false”,表示在机架组块放置策略中,不再使用DFSNetworkTopology。
  5. 修改“net.topology.impl”的参数值,设置为“org.apache.hadoop.net.NetworkTopologyWithRackGroup”,表示在机架组块放置策略中,按照树形分层结构的网络拓扑组成计算机集群。
  6. 修改“dfs.blockplacement.mandatory.rackgroup.name”的参数值,用于指定要选择的强制机架组。强制机架组可以只有一个。将此项留空或不进行配置,强制机架组概念将不会启用。
  7. 单击“保存”,在“保存配置”中单击“确定”,保存完成后在概览页面选择“更多 > 重启服务”,启动HDFS服务。

界面提示“操作成功。”,单击“完成”,HDFS成功启动。

数据存储策略使用建议

  1. 本章节中涉及到的两种数据存储策略,在使用前建议先做好数据规划,根据不同的使用场景选择合适的存储策略。
  2. 分级存储是针对存储介质,如SSD,SAS盘来选择;其它两种存储策略是针对数据节点来做选择。这两类是不同的概念层级。
  3. 标签存储与强制机架组二者是互斥关系,用户在选择存储策略时,只能择其一。两者都可以搭配分级存储来使用。
  4. 针对所有的数据存储策略,当前可以同时支持以下几种控制方式:

如果以上3条控制都启动,HDFS的处理顺序是首先根据NodeLabel选择节点范围,再根据副本放置策略筛选节点,最后是在选择的节点范围内使用分级存储功能选择对应的节点和磁盘进行处理。

本文由华为云发布。

标签:HDFS,存储,副本,策略,FusionInsight,MRS,机架,DISK
来源: https://www.cnblogs.com/huaweicloud/p/16070678.html