HDFS作为一个分布式文件系统,只允许一个客户端同时对一个文件进行修改操作。租约就是为了实现独占的写操作的机制。 HDFS租约的主要实现类是LeaseManager。
Lease 的使用场景如下:

# 其中dfsClientConf.taskId是mapreduce.task.attempt.id 配置获取默认为NONMAPREDUCE
clientName = "DFSClient_" + dfsClientConf.taskId + "_" + DFSUtil.getRandom().nextInt() + "_" + Thread.currentThread().getId();