配置HDFS快速关闭文件功能
操作场景
默认情况下关闭HDFS文件时需要等待所有的Block都上报成功(处于COMPLETED状态)。因此HDFS的一部分写性能消耗为等待DataNode块上报以及NameNode处理块上报。对于一个负载较大的集群,等待的消耗对集群影响较大。HDFS可以通过配置NameNode参数“dfs.namenode.file.close.num-committed-allowed”来提前关闭文件,提升写数据性能。但是由于提前关闭了文件,可能在读取数据的时候由于块找不到或者NameNode元数据中记录的数据块信息和DataNode中存储的真实副本不一致而失败。因此该特性不适用于写完数据即读的场景,请结合业务场景谨慎使用该特性。
该功能适用于MRS 3.2.0-LTS.1及之后版本。
操作步骤
- 登录FusionInsight Manager页面。
- 选择“集群 > 服务 > HDFS > 配置 > 全部配置”进入HDFS全部配置页面。
- 搜索并修改“dfs.namenode.file.close.num-committed-allowed”参数,配置项详细说明如下表。
参数
参数说明
dfs.namenode.file.close.num-committed-allowed
关闭文件时,允许待关闭文件中处于COMMITTED状态的Block的数量。
默认为:0,即关闭该特性。如果开启该特性,一般建议值为1~2,不建议太大。
例如:如果该参数值为1,则表示无需等待最后一个Block状态变成COMPLETED即可关闭文件。
- 参数修改后保存配置。
- 在HDFS“实例”界面,勾选主备NameNode实例,选择“更多 > 滚动重启实例”,等待滚动重启完成生效。