配置HDFS快速关闭文件功能
操作场景
默认情况下关闭HDFS文件时需要等待所有的Block都上报成功(处于COMPLETED状态)。因此HDFS的一部分写性能消耗为等待DataNode块上报以及NameNode处理块上报。对于一个负载较大的集群,等待的消耗对集群影响较大。
该章节指导用户通过配置NameNode参数“dfs.namenode.file.close.num-committed-allowed”来提前关闭文件,提升写数据性能。但是由于提前关闭了文件,可能在读取数据的时候由于块找不到或者NameNode元数据中记录的数据块信息和DataNode中存储的真实副本不一致而失败。因此该特性不适用于写完数据即读的场景,请结合业务场景谨慎使用该特性。
约束与限制
该章节操作仅适用于MRS 3.2.0-LTS.1及之后版本。
操作步骤
- 登录FusionInsight Manager。
登录集群Manager具体操作,请参考访问MRS集群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实例,选择“更多 > 滚动重启实例”,等待滚动重启完成生效。
滚动重启期间,由于NameNode节点会主备倒换,导致系统在短暂时间内出现无主现象(主备倒换过渡期),可能会出现HDFS服务不可用告警信息,运行的读写任务会报错,但是不会中断业务。